Programmation Nanotic NanoLib C++

Informations sur le produit
Caractéristiques
- Nom du produit: NanoLib
- Programmation Langue : C++
- Version de produit: 1.3.0
- Version du manuel d'utilisation : 1.4.2
La bibliothèque NanoLib est conçue pour la programmation de logiciels de contrôle pour les contrôleurs Nanotec. Elle fournit une interface utilisateur, des fonctionnalités de base et des bibliothèques de communication pour faciliter le développement d'applications de contrôle.
Instructions d'utilisation du produit
- Avant de commencer :
- Assurez-vous que votre système répond aux exigences matérielles spécifiées dans le manuel. Le public visé par ce produit comprend les développeurs souhaitant créer un logiciel de contrôle pour les contrôleurs Nanotec.
- Commencer:
- Pour commencer à utiliser NanoLib, suivez ces étapes :
- Commencez par importer NanoLib dans votre projet.
- Configurez les paramètres de votre projet selon vos besoins.
- Construisez votre projet pour intégrer les fonctionnalités NanoLib.
- Créer des projets :
- Vous pouvez créer des projets pour les environnements Windows et Linux. Suivez les instructions spécifiques fournies dans le manuel pour chaque plateforme.
- Référence des classes/fonctions :
- Reportez-vous au manuel d'utilisation pour un guide détaillé sur les classes et fonctions disponibles dans NanoLib pour la programmation du logiciel de contrôle.
FAQ
- Q : Quel est le but de NanoLib ?
- A: NanoLib est une bibliothèque de programmation de logiciels de contrôle pour les contrôleurs Nanotec, offrant des fonctionnalités essentielles et des capacités de communication.
- Q : Comment puis-je démarrer avec NanoLib ?
- A: Commencez par importer NanoLib dans votre projet, configurez les paramètres du projet et créez votre projet pour utiliser les fonctionnalités de NanoLib.
« `
Manuel d'utilisation NanoLib
C++
Valable avec la version du produit 1.3.0
Version du manuel d'utilisation : 1.4.2
Objectif et conventions du document
Ce document décrit la configuration et l'utilisation de la bibliothèque NanoLib et contient une référence à toutes les classes et fonctions permettant de programmer votre propre logiciel de contrôle pour les contrôleurs Nanotec. Nous utilisons les polices suivantes :
Le texte souligné marque une référence croisée ou un lien hypertexte.
Exampfichier 1 : Pour des instructions exactes sur NanoLibAccessor, voir Configuration. Exampétape 2 : Installez le pilote Ixxat et connectez l'adaptateur CAN-vers-USB. Le texte en italique signifie : Il s'agit d'un objet nommé, d'un chemin/élément de menu, d'un onglet/ file nom ou (si nécessaire) une expression en langue étrangère.
Exampfichier 1 : Sélectionner File > Nouveau > Document vierge. Ouvrez l'onglet Outil et sélectionnez Commentaire. Example 2 : Ce document divise les utilisateurs (= Nutzer; usuario; utente; utilisateur; utente etc.) de :
– Utilisateur tiers (= Drittnutzer; tercero usuario; terceiro utente; tiers utilisateur; terzo utente etc.). – Utilisateur final (= Endnutzer; usuario final; utente final; utilisateur final; utente finale etc.).
Courier marque les blocs de code ou les commandes de programmation. Example 1 : Via Bash, appelez sudo make install pour copier les objets partagés ; puis appelez ldconfig. Exampfichier 2 : Utilisez la fonction NanoLibAccessor suivante pour modifier le niveau de journalisation dans NanoLib :
// ***** Variante C++ *****
void setLoggingLevel (niveau LogLevel);
Le texte en gras met l’accent sur des mots individuels d’importance cruciale. Alternativement, des points d’exclamation entre crochets soulignent l’importance critique (!).
Example 1 : Protégez-vous, protégez les autres et votre matériel. Suivez nos notes générales de sécurité qui sont généralement applicables à tous les produits Nanotec.
Example 2 : Pour votre propre protection, suivez également les notes de sécurité spécifiques qui s'appliquent à ce produit spécifique. Le verbe co-cliquer signifie un clic via la touche secondaire de la souris pour ouvrir un menu contextuel, etc.
Example 1 : Co-cliquez sur le file, sélectionnez Renommer et renommez le file. Exampfichier 2 : Pour vérifier les propriétés, co-cliquez sur le file et sélectionnez Propriétés.
Version : doc 1.4.2 / NanoLib 1.3.0
4
Avant de commencer
Avant de commencer à utiliser NanoLib, préparez votre PC et informez-vous sur l'utilisation prévue et les limitations de la bibliothèque.
2.1 Configuration système et matérielle requise

AVIS Dysfonctionnement dû à un fonctionnement en 32 bits ou à un système abandonné ! Utilisez et entretenez systématiquement un système 64 bits. Respectez les instructions et les consignes d'arrêt du fabricant.
NanoLib 1.3.0 prend en charge tous les produits Nanotec avec CANopen, Modbus RTU (également USB sur port COM virtuel), Modbus TCP, EtherCat et Profinet. Pour les NanoLibs plus anciennes : voir le journal des modifications dans les mentions légales. À vos risques et périls : utilisation sur un système hérité. Remarque : suivez les instructions OEM valides pour définir la latence aussi basse que possible si vous rencontrez des problèmes lors de l'utilisation d'un adaptateur USB basé sur FTDI.
Exigences (système 64 bits obligatoire)
Windows 10 ou 11 avec Visual Studio 2019 version 16.8 ou ultérieure et Windows SDK 10.0.20348.0 (version 2104) ou ultérieure
Redistribuables C++ 2017 ou supérieur CANopen : pilote de base Ixxat VCI ou PCAN (en option) Module EtherCat / Profinet DCP : Npcap ou WinPcap Module RESTful : Npcap, WinPcap ou autorisation d'administrateur pour
communiquer avec les chargeurs de démarrage Ethernet
Linux avec Ubuntu 20.04 LTS à 24 (tous x64 et arm64)
En-têtes du noyau et paquet libpopt-dev Profinet DCP : capacités CAP_NET_ADMIN et CAP_NET_RAW
liens CANopen : pilote Ixxat ECI ou adaptateur Peak PCAN-USB EtherCat : CAP_NET_ADMIN, CAP_NET_RAW et
CAP_SYS_NICE capacités RESTful : CAP_NET_ADMIN capacité à communiquer avec Eth-
Chargeurs de démarrage Ethernet (également recommandés : CAP_NET_RAW)
Langue, adaptateurs de bus de terrain, câbles
C++ GCC 7 ou supérieur (Linux)
EtherCAT : câble Ethernet VCP / concentrateur USB : désormais USB uniforme Stockage de masse USB : câble USB REST : câble Ethernet CANopen : Ixxat USB-to-CAN V2 ; Na-
notec ZK-USB-CAN-1, adaptateur Peak PCANUSB Pas de support Ixxat pour Ubuntu sur arm64
Modbus RTU : Nanotec ZK-USB-RS485-1 ou adaptateur équivalent ; câble USB sur port COM virtuel (VCP)
Modbus TCP : câble Ethernet selon la fiche technique du produit
2.2 Utilisation prévue et public cible
NanoLib est une bibliothèque de programmes et un composant logiciel pour le fonctionnement et la communication avec les contrôleurs Nanotec dans une large gamme d'applications industrielles et destiné uniquement aux programmeurs dûment qualifiés.
En raison du matériel (PC) et du système d'exploitation incapables de fonctionner en temps réel, NanoLib n'est pas destiné à être utilisé dans des applications nécessitant un mouvement multi-axes synchrone ou généralement sensibles au temps.
Vous ne devez en aucun cas intégrer NanoLib comme composant de sécurité dans un produit ou un système. Lors de la livraison aux utilisateurs finaux, vous devez ajouter à chaque produit comportant un composant fabriqué par Nanotec des avertissements et des instructions d'utilisation et de fonctionnement sûrs correspondants. Vous devez transmettre tous les avertissements émis par Nanotec directement à l'utilisateur final.
2.3 Contenu de la livraison et garantie
NanoLib se présente sous la forme d'un dossier *.zip issu de notre téléchargement website pour la zone EMEA / APAC ou AMÉRIQUE. Enregistrez et décompressez dûment votre téléchargement avant l’installation. Le package NanoLib contient :
Version : doc 1.4.2 / NanoLib 1.3.0
5
2 Avant de commencer
En-têtes d'interface comme code source (API)
Fonctions principales en tant que bibliothèques au format binaire : nano-
Bibliothèques facilitant la communication : nanolibm_lib.dll
[votrebus de terrain].dll etc.Example projet: Example.sln (Visual Studio
projet) et example.cpp (principal file)
Pour connaître l'étendue de la garantie, veuillez consulter a) nos conditions générales pour la zone EMEA/APAC ou AMÉRIQUE et b) toutes les conditions de licence. Remarque : Nanotec n'est pas responsable de la qualité, de la manipulation, de l'installation, du fonctionnement, de l'utilisation et de la maintenance défectueuses ou inappropriées des équipements tiers ! Pour des raisons de sécurité, suivez toujours les instructions OEM en vigueur.
Version : doc 1.4.2 / NanoLib 1.3.0
6
L'architecture NanoLib
La structure logicielle modulaire de NanoLib vous permet d'organiser des fonctions de contrôleur de moteur/bus de terrain librement personnalisables autour d'un noyau strictement prédéfini. NanoLib contient les modules suivants :
Interface utilisateur (API)
Noyau NanoLib
Classes d'interface et d'assistance qui Bibliothèques qui
Bibliothèques de communication Bibliothèques spécifiques au bus de terrain qui
vous accéder à l'implémentation de votre contrôleur la fonctionnalité API fait l'interface entre NanoLib
OD (dictionnaire d'objets)
interagir avec les bibliothèques de bus.
matériel de base et de bus.
basé sur la fonction principale de NanoLib.
réalités.
3.1 Interface utilisateur
L'interface utilisateur se compose d'une interface d'en-tête filevous pouvez les utiliser pour accéder aux paramètres du contrôleur. Les classes d'interface utilisateur décrites dans la référence Classes/fonctions vous permettent de :
Connectez-vous à la fois au matériel (adaptateur de bus de terrain) et au contrôleur. Accédez à l'OD du périphérique pour lire/écrire les paramètres du contrôleur.
3.2 Noyau NanoLib
Le noyau NanoLib est fourni avec la bibliothèque d'importation nanolib.lib. Elle implémente les fonctionnalités de l'interface utilisateur et est responsable de :
Chargement et gestion des bibliothèques de communication. Fourniture des fonctionnalités d'interface utilisateur dans NanoLibAccessor. Ce point d'entrée de communication
définit un ensemble d'opérations que vous pouvez exécuter sur le noyau NanoLib et les bibliothèques de communication.
3.3 Bibliothèques de communication
En plus de nanotec.services.nanolib.dll (utile pour votre Plug & Drive Studio en option), NanoLib propose les bibliothèques de communication suivantes :
nanolibm_canopen.dll nanolibm_modbus.dll
nanolibm_ethercat.dll nanolibm_restful-api.dll
nanolibm_usbmmsc.dll nanolibm_profinet.dll
Toutes les bibliothèques disposent d'une couche d'abstraction matérielle entre le cœur et le contrôleur. Le noyau les charge au démarrage à partir du dossier de projet désigné et les utilise pour établir la communication avec le contrôleur par le protocole correspondant.
Version : doc 1.4.2 / NanoLib 1.3.0
7
Commencer
Découvrez comment configurer correctement NanoLib pour votre système d'exploitation et comment connecter le matériel si nécessaire.
4.1 Préparez votre système
Avant d'installer les pilotes de l'adaptateur, préparez d'abord votre PC avec le système d'exploitation. Pour préparer le PC avec votre système d'exploitation Windows, installez MS Visual Studio avec les extensions C++. Pour installer make et gcc avec Linux Bash, appelez sudo apt install build-essentials. Activez ensuite les fonctionnalités CAP_NET_ADMIN, CAP_NET_RAW et CAP_SYS_NICE pour l'application qui utilise NanoLib : 1. Appelez sudo setcap 'cap_net_admin,cap_net_raw,cap_sys_nice+eip'
nom>. 2. Ensuite seulement, installez les pilotes de votre adaptateur.
4.2 Installer le pilote de l'adaptateur Ixxat pour Windows
Vous ne pouvez utiliser l'adaptateur USB-to-CAN V2 d'Ixxat qu'après avoir installé le pilote approprié. Lisez le manuel du produit des clés USB pour savoir si et comment activer le port de communication virtuel (VCP). 1. Téléchargez et installez le pilote VCI 4 d'Ixxat pour Windows à partir de www.ixxat.com. 2. Connectez l'adaptateur compact USB-to-CAN V2 d'Ixxat au PC via USB. 3. Par le Gestionnaire de périphériques : Vérifiez si le pilote et l'adaptateur sont correctement installés/reconnus.
4.3 Installer le pilote de l'adaptateur Peak pour Windows
Vous ne pouvez utiliser l'adaptateur PCAN-USB de Peak qu'après avoir installé le pilote approprié. Lisez le manuel du produit des clés USB pour savoir si et comment activer le port de communication virtuel (VCP). 1. Téléchargez et installez le programme d'installation du pilote de périphérique Windows (= package d'installation avec pilotes de périphérique, outils et
API) de http://www.peak-system.com. 2. Connectez l'adaptateur PCAN-USB de Peak au PC via USB. 3. Par le Gestionnaire de périphériques : Vérifiez si le pilote et l'adaptateur sont correctement installés/reconnus.
4.4 Installer le pilote de l'adaptateur Ixxat pour Linux
Vous ne pouvez utiliser l'adaptateur USB-to-CAN V2 d'Ixxat qu'après avoir installé le pilote approprié. Remarque : les autres adaptateurs pris en charge nécessitent vos autorisations via sudo chmod +777/dev/ttyACM* (* numéro de périphérique). Lisez le manuel du produit des clés USB pour savoir si et comment activer le port de communication virtuel (VCP). 1. Installez le logiciel nécessaire au pilote ECI et à l'application de démonstration :
sudo apt-get update apt-get install libusb-1.0-0-dev libusb-0.1-4 libc6 libstdc++6 libgcc1 buildessential
2. Téléchargez le pilote ECI pour Linux depuis www.ixxat.com. Décompressez-le via :
décompresser eci_driver_linux_amd64.zip
3. Installez le pilote via :
cd /EciLinux_amd/src/KernelModule sudo make install-usb
4. Vérifiez que l'installation du pilote a réussi en compilant et en démarrant l'application de démonstration :
cd /EciLinux_amd/src/EciDemos/ sudo make cd /EciLinux_amd/bin/release/ ./LinuxEciDemo
Version : doc 1.4.2 / NanoLib 1.3.0
8
4 Mise en route
4.5 Installer le pilote de l'adaptateur Peak pour Linux
Vous ne pouvez utiliser l'adaptateur PCAN-USB de Peak qu'après avoir installé le pilote approprié. Remarque : les autres adaptateurs pris en charge nécessitent vos autorisations via sudo chmod +777/dev/ttyACM* (* numéro de périphérique). Lisez le manuel du produit des clés USB pour savoir si et comment activer le port de communication virtuel (VCP). 1. Vérifiez si votre Linux dispose d'en-têtes de noyau : ls /usr/src/linux-headers-`uname -r`. Si ce n'est pas le cas, installez
eux : sudo apt-get install linux-headers-`uname -r` 2. Maintenant seulement, installez le paquet libpopt-dev : sudo apt-get install libpopt-dev 3. Téléchargez le package de pilotes nécessaire (peak-linux-driver-xxx.tar.gz) depuis www.peak-system.com. 4. Pour le décompresser, utilisez : tar xzf peak-linux-driver-xxx.tar.gz 5. Dans le dossier décompressé : Compilez et installez les pilotes, la bibliothèque de base PCAN, etc. : make all
sudo make install 6. Pour vérifier la fonction, branchez l'adaptateur PCAN-USB.
a) Vérifiez le module du noyau :
lsmod | grep pcan b) … et la bibliothèque partagée :
ls -l /usr/lib/libpcan*
Remarque : si des problèmes USB3 surviennent, utilisez un port USB2.
4.6 Connectez votre matériel
Pour pouvoir exécuter un projet NanoLib, connectez un contrôleur Nanotec compatible au PC à l'aide de votre adaptateur. 1. À l'aide d'un câble adapté, connectez votre adaptateur au contrôleur. 2. Connectez l'adaptateur au PC conformément à la fiche technique de l'adaptateur. 3. Allumez le contrôleur à l'aide d'une alimentation électrique adaptée. 4. Si nécessaire, modifiez les paramètres de communication du contrôleur Nanotec comme indiqué dans son manuel produit.
4.7 Charger NanoLib
Pour un premier démarrage avec des bases simples et rapides, vous pouvez (mais ne devez pas) utiliser notre example projet. 1. Selon votre région : Téléchargez NanoLib depuis notre website pour la zone EMEA / APAC ou AMÉRIQUE. 2. Décompressez le package files/dossiers et sélectionnez une option : Pour des bases simples et rapides : Voir Démarrage de l'example projet. Pour une personnalisation avancée sous Windows : voir Créer votre propre projet Windows. Pour une personnalisation avancée sous Linux : voir Créer votre propre projet Linux.
Version : doc 1.4.2 / NanoLib 1.3.0
9
Commencer l'example projet
Avec NanoLib dûment chargé, l'example projet vous montre l'utilisation de NanoLib avec un contrôleur Nanotec. Remarque : Pour chaque étape, des commentaires dans l'ex fourniample code explique les fonctions utilisées. Le EXample projet se compose de : les `*_functions_example.*' files, qui contiennent les implémentations des fonctions d'interface NanoLib `*_callback_example.*' files, qui contiennent des implémentations pour les différents rappels (scan, données et
journalisation) le `menu_*.*' file, qui contient la logique du menu et le code Example.* file, qui est le programme principal, créant le menu et initialisant tous les paramètres utilisés le Sampler_example.* file, qui contient l'exampl'implémentation pour samputilisation du ler. Vous pouvez trouver plus d'exemplesamples, avec quelques commandes de mouvement pour différents modes de fonctionnement, dans la base de connaissances sur nanotec.com. Tous sont utilisables sous Windows ou Linux.
Sous Windows avec Visual Studio 1. Ouvrez l'Example.sln file. 2. Ouvrez l'example.cpp. 3. Compilez et exécutez l'example code.
Sous Linux via Bash 1. Décompressez la source file, accédez au dossier avec le contenu décompressé. Le principal file pour l'example est
example.cpp. 2. Dans le bash, appelez :
a. « sudo make install » pour copier les objets partagés et appeler ldconfig. b. « make all » pour créer l'exécutable de test. 3. Le dossier bin contient un exécutable example file. Par bash : Allez dans le dossier de sortie et tapez ./example. Si aucune erreur ne se produit, vos objets partagés sont maintenant correctement installés et votre bibliothèque est prête à être utilisée. Si l'erreur est ./example : erreur lors du chargement des bibliothèques partagées : libnanolib.so : impossible d'ouvrir l'objet partagé file:Pas de tel file ou répertoire, l'installation des objets partagés a échoué. Dans ce cas, suivez les étapes suivantes. 4. Créez un nouveau dossier dans /usr/local/lib (droits d'administrateur requis). Dans le bash, tapez donc :
sudo mkdir /usr/local/lib/nanotec
5. Copiez tous les objets partagés depuis le zip fileDossier lib de :
installer ./lib/*.so /usr/local/lib/nanotec/
6. Vérifiez le contenu du dossier cible avec :
ls -al /usr/local/lib/nanotec/
Il devrait répertorier l'objet partagé files du dossier lib. 7. Exécutez ldconfig sur ce dossier :
sudo ldconfig /usr/local/lib/nanotec/
L'example est implémenté comme une application CLI et fournit une interface de menu. Les entrées de menu sont basées sur le contexte et seront activées ou désactivées, selon l'état du contexte. Elles vous offrent la possibilité de sélectionner et d'exécuter diverses fonctions de bibliothèque en suivant le flux de travail typique pour la gestion d'un contrôleur : 1. Vérifiez le matériel connecté au PC (adaptateurs) et répertoriez-les. 2. Établissez une connexion à un adaptateur. 3. Scannez le bus pour rechercher les périphériques de contrôleur connectés. 4. Connectez-vous à un périphérique.
Version : doc 1.4.2 / NanoLib 1.3.0
10
5 Commencer l'example projet
5. Testez une ou plusieurs fonctions de la bibliothèque : lecture/écriture depuis/vers le dictionnaire d'objets du contrôleur, mise à jour du micrologiciel, téléchargement et exécution d'un programme NanoJ, mise en marche et réglage du moteur, configuration et utilisation des journauxamplire.
6. Fermez la connexion, d'abord à l'appareil, puis à l'adaptateur.
Version : doc 1.4.2 / NanoLib 1.3.0
11
Créer votre propre projet Windows
Créez, compilez et exécutez votre propre projet Windows pour utiliser NanoLib.
6.1 Importer NanoLib
Importer l'en-tête NanoLib files et bibliothèques via MS Visual Studio.
1. Ouvrez Visual Studio. 2. Via Créer un nouveau projet > Console App C++ > Suivant : Sélectionnez un type de projet. 3. Nommez votre projet (ici : NanolibTest) pour créer un dossier de projet dans l'Explorateur de solutions. 4. Sélectionnez Terminer. 5. Ouvrez les fenêtres file explorer et accédez au nouveau dossier de projet créé. 6. Créez deux nouveaux dossiers, inc et lib. 7. Ouvrez le dossier du package NanoLib. 8. À partir de là : Copiez l'en-tête files du dossier include dans votre dossier de projet inc et tous les .lib et .dll
files dans votre nouveau dossier de projet lib. 9. Vérifiez la structure appropriée de votre dossier de projet, par exempleample:
dossier ect pour la structure appropriée :
. NanolibTest inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result_od_entry.hpp lib nanolibm_canopen.dll nanolib.dll … nanolib.lib NanolibTest.cpp NanolibTest.vcxproj NanolibTest.vcxproj.filters NanolibTest.vcxproj.user NanolibTest.sln
6.2 Configurez votre projet
Utilisez l'Explorateur de solutions dans MS Visual Studio pour configurer des projets NanoLib. Remarque : pour un fonctionnement correct de NanoLib, sélectionnez la configuration de publication (et non de débogage !) dans les paramètres du projet Visual C++ ; puis générez et liez le projet aux environnements d'exécution VC des redistribuables C++ [2022].
1. Dans l'Explorateur de solutions : Allez dans votre dossier de projet (ici : NanolibTest). 2. Co-cliquez sur le dossier pour ouvrir le menu contextuel. 3. Sélectionnez Propriétés. 4. Activez Toutes les configurations et Toutes les plateformes. 5. Sélectionnez C/C++ et allez dans Répertoires d'inclusion supplémentaires. 6. Insérer : $(ProjectDir)Nanolib/includes;%(AdditionalIncludeDirectories) 7. Sélectionnez Linker et allez dans Répertoires de bibliothèques supplémentaires. 8. Insérer : $(ProjectDir)Nanolib;%(AdditionalLibraryDirectories) 9. Étendez Linker et sélectionnez Entrée. 10. Allez dans Dépendances supplémentaires et insérez : nanolib.lib;%(AdditionalDependencies) 11. Confirmez via OK.
Version : doc 1.4.2 / NanoLib 1.3.0
12
6 Créer votre propre projet Windows
12. Accédez à Configuration > C++ > Langage > Norme de langage > Norme ISO C++17 et définissez la norme de langage sur C++17 (/std:c++17).
6.3 Construisez votre projet
Créez votre projet NanoLib dans MS Visual Studio. 1. Ouvrez le fichier *.cpp principal file (ici : nanolib_example.cpp) et modifiez le code, si besoin est. 2. Sélectionnez Build > Configuration Manager. 3. Modifiez les plateformes de solutions actives en x64. 4. Confirmez via Close. 5. Sélectionnez Build > Build solution. 6. Aucune erreur ? Vérifiez si votre sortie de compilation signale correctement :
1>—— Nettoyage démarré : Projet : NanolibTest, Configuration : Debug x64 —–========== Nettoyage : 1 réussi, 0 échoué, 0 ignoré ==========
Version : doc 1.4.2 / NanoLib 1.3.0
13
7 Créer votre propre projet Linux
7 Créer votre propre projet Linux
Créez, compilez et exécutez votre propre projet Linux pour utiliser NanoLib. 1. Dans le kit d'installation NanoLib décompressé : Ouvrez /nanotec_nanolib. 2. Recherchez tous les objets partagés dans le fichier tar.gz file. 3. Sélectionnez une option : installez chaque bibliothèque avec un Makefile ou à la main.
7.1 Installer les objets partagés avec Makefile
Utiliser Makefile avec Linux Bash pour installer automatiquement tous les fichiers *.so par défaut files. 1. Via Bash : Accédez au dossier contenant le makefile. 2. Copiez les objets partagés via :
sudo make install 3. Confirmez via :
ldconfig
7.2 Installer les objets partagés à la main
Utilisez un Bash pour installer tous les *.so files de NanoLib manuellement. 1. Via Bash : Créez un nouveau dossier dans /usr/local/lib. 2. Droits d'administrateur requis ! Tapez :
sudo mkdir /usr/local/lib/nanotec 3. Accédez au dossier du package d'installation décompressé. 4. Copiez tous les objets partagés du dossier lib via :
installez ./nanotec_nanolib/lib/*.so /usr/local/lib/nanotec/ 5. Vérifiez le contenu du dossier cible via :
ls -al /usr/local/lib/nanotec/ 6. Vérifiez si tous les objets partagés du dossier lib sont répertoriés. 7. Exécutez ldconfig sur ce dossier via :
sudo ldconfig /usr/local/lib/nanotec/
7.3 Créez votre projet
Avec vos objets partagés installés : Créez un nouveau projet pour votre NanoLib Linux. 1. Via Bash : Créez un nouveau dossier de projet (ici : NanoLibTest) via :
mkdir NanoLibTest cd NanoLibTest
2. Copiez l'en-tête files vers un dossier inclus (ici : inc) via : mkdir inc cp / FILE IS>/nanotec_nanolib/inc/*.hpp inc
3. Créez un fichier principal file (NanoLibTest.cpp) via : #include « accessor_factory.hpp » #include
Version : doc 1.4.2 / NanoLib 1.3.0
14
7 Créer votre propre projet Linux
int main(){ nlc::NanoLibAccessor *accessor = getNanoLibAccessor();
nlc::ResultBusHwIds résultat = accesseur->listAvailableBusHardware();
si(résultat.hasError()) { std::cout << résultat.getError() << std::endl; }
else{ std::cout << « Succès » << std::endl ; }
supprimer l'accesseur ; retourner 0 ; }
4. Vérifiez la structure appropriée de votre dossier de projet :

.NanoLibTest
inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result.hpp NanoLibTest.cpp
7.4 Compilez et testez votre projet
Préparez votre Linux NanoLib à l'utilisation via Bash.
1. Via Bash : Compiler le fichier principal file via:
g++ -Wall -Wextra -pedantic -I./inc -c NanoLibTest.cpp -o NanoLibTest
2. Liez l'exécutable via :
g++ -Wall -Wextra -pedantic -I./inc -o test NanoLibTest.o L/usr/local/lib/nanotec -lnanolib -ldl
3. Exécutez le programme de test via :
./test
4. Vérifiez si votre Bash rapporte dûment :
succès
Version : doc 1.4.2 / NanoLib 1.3.0
15
8 Référence classes / fonctions
8 Référence classes / fonctions
Trouvez ici une liste des classes d'interface utilisateur de NanoLib et de leurs fonctions membres. La description type d'une fonction comprend une courte introduction, la définition de la fonction et une liste de paramètres/retours :
ExampleFunction () Vous indique brièvement ce que fait la fonction.
vide virtuel nlc::NanoLibAccessor::ExampleFunction (Param_a const & param_a, Param_b const & param_B)
Paramètres param_a param_b
Renvoie RésultatVoid
Commentaire complémentaire si nécessaire. Commentaire complémentaire si nécessaire.
8.1 NanoLibAccesseur
Classe d'interface utilisée comme point d'entrée à la NanoLib. Un flux de travail typique ressemble à ceci :
1. Commencez par rechercher du matériel avec NanoLibAccessor.listAvailableBusHardware (). 2. Définissez les paramètres de communication avec BusHardwareOptions (). 3. Ouvrez la connexion matérielle avec NanoLibAccessor.openBusHardwareWithProtocol (). 4. Scannez le bus pour les appareils connectés avec NanoLibAccessor.scanDevices (). 5. Ajoutez un appareil avec NanoLibAccessor.addDevice (). 6. Connectez-vous à l'appareil avec NanoLibAccessor.connectDevice (). 7. Une fois l'opération terminée, déconnectez l'appareil avec NanoLibAccessor.disconnectDevice (). 8. Supprimez l'appareil avec NanoLibAccessor.removeDevice (). 9. Fermez la connexion matérielle avec NanoLibAccessor.closeBusHardware ().
NanoLibAccessor a les fonctions de membre public suivantes :
listAvailableBusHardware () Utilisez cette fonction pour répertorier le matériel de bus de terrain disponible.
ResultBusHwIds virtuels nlc::NanoLibAccessor::listAvailableBusHardware()
Renvoie ResultBusHwIds
Fournit un tableau d’ID de bus de terrain.
openBusHardwareWithProtocol () Utilisez cette fonction pour connecter le matériel du bus.
Résultat virtuelVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (BusHardwareId const & busHwId, BusHardwareOptions const & busHwOpt)
Paramètres busHwId busHwOpt
Renvoie RésultatVoid
Spécifie le bus de terrain à ouvrir. Spécifie les options d'ouverture du bus de terrain. Confirme qu'une fonction void a été exécutée.
isBusHardwareOpen () Utilisez cette fonction pour vérifier si votre connexion matérielle de bus de terrain est ouverte.
Résultat virtuelVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (const BusHardwareId & busHwId, const BusHardwareOptions & busHwOpt)
Version : doc 1.4.2 / NanoLib 1.3.0
16
8 Référence classes / fonctions
Paramètres BusHardwareId Renvoie vrai
FAUX
Spécifie chaque bus de terrain à ouvrir. Le matériel est ouvert. Le matériel est fermé.
getProtocolSpecificAccessor () Utilisez cette fonction pour obtenir l'objet accesseur spécifique au protocole.
Résultat virtuelVoid nlc::NanoLibAccessor::getProtocolSpecificAccessor (BusHardwareId const & busHwId)
Paramètres busHwId Renvoie ResultVoid
Spécifie le bus de terrain pour lequel obtenir l'accesseur. Confirme qu'une fonction void a été exécutée.
getProfinetDCP () Utilisez cette fonction pour renvoyer une référence à l'interface Profinet DCP.
ProfinetDCP virtuel et getProfinetDCP ()
Retourne ProfinetDCP
obtientamplerInterface () Utilisez cette fonction pour obtenir une référence au sampinterface utilisateur.
S virtuelampInterface ler et getSamplerInterface ()
Renvoie SamplerInterface
Fait référence au sampclasse d'interface ler.
setBusState () Utilisez cette fonction pour définir l'état spécifique au protocole de bus.
Résultat virtuelVoid nlc::NanoLibAccessor::setBusState (const BusHardwareId & busHwId, const std::string & state)
Paramètres état busHwId
Renvoie RésultatVoid
Spécifie le bus de terrain à ouvrir. Attribue un état spécifique au bus en tant que valeur de chaîne. Confirme qu'une fonction void a été exécutée.
scanDevices () Utilisez cette fonction pour rechercher des appareils sur le réseau.
ResultDeviceIds virtuels nlc::NanoLibAccessor::scanDevices (const BusHardwareId & busHwId, NlcScanBusCallback* rappel)
Paramètres de rappel busHwId
Renvoie ResultDeviceIds IOError
Spécifie le bus de terrain à analyser. Traceur de progression NlcScanBusCallback. Fournit un tableau d’ID de périphérique. Informe qu'un périphérique n'est pas trouvé.
Version : doc 1.4.2 / NanoLib 1.3.0
17
8 Référence classes / fonctions
ajouterDevice()
Utilisez cette fonction pour ajouter un périphérique de bus décrit par deviceId à la liste des périphériques internes de NanoLib et pour renvoyer deviceHandle pour celui-ci.
ResultDeviceHandle virtuel nlc::NanoLibAccessor::addDevice (DeviceId const & deviceId)
Paramètres deviceId Renvoie ResultDeviceHandle
Spécifie le périphérique à ajouter à la liste. Fournit une poignée d’appareil.
connectDevice () Utilisez cette fonction pour connecter un appareil par deviceHandle.
Résultat virtuelVoid nlc::NanoLibAccessor::connectDevice (DeviceHandle const deviceHandle)
Paramètres deviceHandle Renvoie ResultVoid
Erreur IO
Spécifie à quel périphérique de bus NanoLib se connecte. Confirme qu'une fonction void a été exécutée. Informe qu'un périphérique n'est pas trouvé.
getDeviceName () Utilisez cette fonction pour obtenir le nom d'un périphérique par deviceHandle.
chaîne de résultat virtuelle nlc::NanoLibAccessor::getDeviceName (DeviceHandle const deviceHandle)
Paramètres deviceHandle renvoie ResultString
Spécifie pour quel périphérique de bus NanoLib obtient le nom. Fournit les noms de périphériques sous forme de chaîne.
getDeviceProductCode () Utilisez cette fonction pour obtenir le code produit d'un appareil par deviceHandle.
Résultat virtuelInt nlc::NanoLibAccessor::getDeviceProductCode (DeviceHandle const deviceHandle)
Paramètres deviceHandle Renvoie ResultInt
Spécifie pour quel périphérique de bus NanoLib obtient le code produit. Fournit les codes produit sous forme d’entier.
getDeviceVendorId () Utilisez cette fonction pour obtenir l'ID du fournisseur de l'appareil par deviceHandle.
Résultat virtuelInt nlc::NanoLibAccessor::getDeviceVendorId (DeviceHandle const deviceHandle)
Paramètres deviceHandle Renvoie ResultInt
Ressource indisponible
Spécifie pour quel périphérique de bus NanoLib obtient l'ID du fournisseur. Fournit les ID du fournisseur sous forme de nombre entier. Informe qu'aucune donnée n'est trouvée.
Version : doc 1.4.2 / NanoLib 1.3.0
18
8 Référence classes / fonctions
getDeviceId () Utilisez cette fonction pour obtenir l'ID d'un appareil spécifique à partir de la liste interne de NanoLib.
ResultDeviceId virtuel nlc::NanoLibAccessor::getDeviceId (DeviceHandle const deviceHandle)
Paramètres deviceHandle Renvoie ResultDeviceId
Spécifie pour quel périphérique de bus NanoLib obtient l'ID de périphérique. Fournit un identifiant de périphérique.
getDeviceIds () Utilisez cette fonction pour obtenir l'ID de tous les appareils de la liste interne de NanoLib.
ResultDeviceIds virtuels nlc::NanoLibAccessor::getDeviceIds()
Renvoie les ID de périphérique de résultat
Fournit une liste d’ID de périphérique.
getDeviceUid () Utilisez cette fonction pour obtenir l'ID unique d'un périphérique (96 bits / 12 octets) par deviceHandle.
Tableau de résultats virtuel Byte nlc::NanoLibAccessor::getDeviceUid (DeviceHandle const deviceHandle)
Paramètres deviceHandle Renvoie ResultArrayByte
Ressource indisponible
Spécifie pour quel périphérique de bus NanoLib obtient l'ID unique. Fournit des ID uniques sous forme de tableau d'octets. Informe qu'aucune donnée n'est trouvée.
getDeviceSerialNumber () Utilisez cette fonction pour obtenir le numéro de série d'un appareil par deviceHandle.
chaîne de résultat virtuelle NanolibAccessor::getDeviceSerialNumber (DeviceHandle const deviceHandle)
Paramètres deviceHandle renvoie ResultString
Ressource indisponible
Spécifie pour quel périphérique de bus NanoLib obtient le numéro de série. Fournit les numéros de série sous forme de chaîne. Informe qu'aucune donnée n'est trouvée.
getDeviceHardwareGroup () Utilisez cette fonction pour obtenir le groupe matériel d'un périphérique de bus par deviceHandle.
ResultDeviceId virtuel nlc::NanoLibAccessor::getDeviceHardwareGroup (DeviceHandle const deviceHandle)
Paramètres deviceHandle Renvoie ResultInt
Spécifie pour quel périphérique de bus NanoLib obtient le groupe matériel.
Fournit des groupes de matériel sous forme d’entier.
getDeviceHardwareVersion () Utilisez cette fonction pour obtenir la version matérielle d'un périphérique de bus par deviceHandle.
ResultDeviceId virtuel nlc::NanoLibAccessor::getDeviceHardwareVersion (DeviceHandle const deviceHandle)
Version : doc 1.4.2 / NanoLib 1.3.0
19
8 Référence classes / fonctions
Paramètres DeviceHandle
Retours
Ressource de chaîne de résultats indisponible
Spécifie pour quel périphérique de bus NanoLib obtient la version matérielle. Fournit les noms de périphériques sous forme de chaîne. Informe qu'aucune donnée n'est trouvée.
getDeviceFirmwareBuildId () Utilisez cette fonction pour obtenir l'ID de build du micrologiciel d'un périphérique de bus par deviceHandle.
ResultDeviceId virtuel nlc::NanoLibAccessor::getDeviceFirmwareBuildId (DeviceHandle const deviceHandle)
Paramètres deviceHandle renvoie ResultString
Spécifie pour quel périphérique de bus NanoLib obtient l'ID de build du micrologiciel.
Fournit les noms de périphériques sous forme de chaîne.
getDeviceBootloaderVersion () Utilisez cette fonction pour obtenir la version du chargeur de démarrage d'un périphérique de bus par deviceHandle.
Résultat virtuelInt nlc::NanoLibAccessor::getDeviceBootloaderVersion (DeviceHandle const deviceHandle)
Paramètres DeviceHandle
Retours
ResultInt RessourceIndisponible
Spécifie pour quel périphérique de bus NanoLib obtient la version du chargeur de démarrage. Fournit les versions du chargeur de démarrage sous forme d’entier. Informe qu'aucune donnée n'est trouvée.
getDeviceBootloaderBuildId () Utilisez cette fonction pour obtenir l'ID de build du chargeur de démarrage d'un périphérique de bus par deviceHandle.
ResultDeviceId virtuel nlc::NanoLibAccessor:: (DeviceHandle const deviceHandle)
Paramètres deviceHandle renvoie ResultString
Spécifie pour quel périphérique de bus NanoLib obtient l'ID de build du chargeur de démarrage.
Fournit les noms de périphériques sous forme de chaîne.
rebootDevice () Utilisez cette fonction pour redémarrer l'appareil par deviceHandle.
Résultat virtuelVoid nlc::NanoLibAccessor::rebootDevice (const DeviceHandle deviceHandle)
Paramètres deviceHandle Renvoie ResultVoid
Spécifie le bus de terrain à redémarrer. Confirme qu'une fonction void a été exécutée.
getDeviceState () Utilisez cette fonction pour obtenir l'état spécifique au protocole du périphérique.
chaîne de résultat virtuelle nlc::NanoLibAccessor::getDeviceState (DeviceHandle const deviceHandle)
Paramètres DeviceHandle
Spécifie pour quel périphérique de bus NanoLib obtient l'état.
Version : doc 1.4.2 / NanoLib 1.3.0
20
8 Référence classes / fonctions
Renvoie la chaîne de résultats
Fournit les noms de périphériques sous forme de chaîne.
setDeviceState () Utilisez cette fonction pour définir l'état spécifique au protocole du périphérique.
Résultat virtuelVoid nlc::NanoLibAccessor::setDeviceState (const DeviceHandle deviceHandle, const std::string & state)
Paramètres état de la poignée du périphérique
Renvoie RésultatVoid
Spécifie pour quel périphérique de bus NanoLib définit l'état. Attribue un état spécifique au bus en tant que valeur de chaîne. Confirme qu'une fonction void a été exécutée.
getConnectionState()
Utilisez cette fonction pour obtenir le dernier état de connexion connu d'un périphérique spécifique par deviceHandle (= Disconnected, Connected, ConnectedBootloader)
Résultat virtuelConnectionState nlc::NanoLibAccessor::getConnectionState (DeviceHandle const deviceHandle)
Paramètres deviceHandle Renvoie ResultConnectionState
Spécifie pour quel périphérique de bus NanoLib obtient l'état de connexion.
Fournit un état de connexion (= Déconnecté, Connecté, ConnectedBootloader).
checkConnectionState()
Uniquement si le dernier état connu n'était pas Déconnecté : utilisez cette fonction pour vérifier et éventuellement mettre à jour l'état de connexion d'un périphérique spécifique par deviceHandle et en testant plusieurs opérations spécifiques au mode.
Résultat virtuelConnectionState nlc::NanoLibAccessor::checkConnectionState (DeviceHandle const deviceHandle)
Paramètres deviceHandle Renvoie ResultConnectionState
Spécifie quel périphérique de bus NanoLib vérifie l'état de la connexion.
Fournit un état de connexion (= non déconnecté).
assignObjectDictionary () Utilisez cette fonction manuelle pour attribuer vous-même un dictionnaire d'objets (OD) à deviceHandle.
ResultObjectDictionary virtuel nlc::NanoLibAccessor::assignObjectDictionary (DeviceHandle const deviceHandle, ObjectDictionary const & objectDictionary)
Paramètres deviceHandle objectDictionary
Renvoie le DictionnaireObjetRésultat
Spécifie à quel périphérique de bus NanoLib attribue l'OD. Affiche les propriétés d'un dictionnaire d'objets.
autoAssignObjectDictionary ()
Utilisez cet automatisme pour laisser NanoLib attribuer un dictionnaire d'objets (OD) à deviceHandle. Lors de la recherche et du chargement d'un OD approprié, NanoLib l'attribue automatiquement à l'appareil. Remarque : Si un OD compatible est déjà chargé dans la bibliothèque d'objets, NanoLib l'utilisera automatiquement sans analyser le répertoire soumis.
ResultObjectDictionary virtuel nlc::NanoLibAccessor::autoAssignObjectDictionary (DeviceHandle const deviceHandle, const std::string & dictionariesLocationPath)
Version : doc 1.4.2 / NanoLib 1.3.0
21
8 Référence classes / fonctions
Paramètres DeviceHandle
Retours
dictionnairesLocationPath ResultObjectDictionary
Spécifie quel périphérique de bus NanoLib doit automatiquement rechercher les OD appropriés. Spécifie le chemin d'accès au répertoire OD. Affiche les propriétés d'un dictionnaire d'objets.
getAssignedObjectDictionary()
Utilisez cette fonction pour obtenir le dictionnaire d'objets attribué à un périphérique par deviceHandle.
ResultObjectDictionary virtuel nlc::NanoLibAccessor::getAssignedObjectDictionary (DeviceHandle const device
Poignée)
Paramètres deviceHandle Renvoie ResultObjectDictionary
Spécifie pour quel périphérique de bus NanoLib obtient l'OD attribué. Affiche les propriétés d'un dictionnaire d'objets.
getObjectDictionaryLibrary () Cette fonction renvoie une référence OdLibrary.
Bibliothèque OdLibrary virtuelle & nlc::NanoLibAccessor::getObjectDictionaryLibrary()
Renvoie OdLibrary&
Ouvre toute la bibliothèque OD et ses dictionnaires d'objets.
setLoggingLevel () Utilisez cette fonction pour définir les détails du journal nécessaires (et le file taille). Le niveau par défaut est Info.
void virtuel nlc::NanoLibAccessor::setLoggingLevel (niveau LogLevel)
Niveau paramètres
Les détails de journal suivants sont possibles :
0 = Trace 1 = Débogage 2 = Info 3 = Avertir 4 = Erreur 5 = Critique 6 = Désactivé
Niveau le plus bas (le plus grand journal file); enregistre tous les détails possibles, ainsi que le démarrage/arrêt du logiciel. Enregistre les informations de débogage (= résultats intermédiaires, contenu envoyé ou reçu, etc.) Niveau par défaut ; enregistre les messages d’information. Enregistre les problèmes qui se sont produits mais n'arrêteront pas l'algorithme actuel. Enregistre simplement de graves problèmes qui ont arrêté l'algorithme. Niveau le plus élevé (le plus petit journal file); désactive la connexion ; plus aucun journal du tout. Aucune journalisation du tout.
setLoggingCallback()
Utilisez cette fonction pour définir un pointeur de rappel de journalisation et un module de journal (= bibliothèque) pour ce rappel (pas pour le journal lui-même).
void virtuel nlc::NanoLibAccessor::setLoggingCallback (rappel NlcLoggingCallback*, const nlc::LogModule & logModule)
Paramètres *callback logModule
Définit un pointeur de rappel. Adapte le rappel (pas l'enregistreur !) à votre bibliothèque.
0 = NanolibCore 1 = NanolibCANopen 2 = NanolibModbus 3 = NanolibEtherCAT
Active un rappel pour le noyau de NanoLib uniquement. Active un rappel CANopen uniquement. Active un rappel Modbus uniquement. Active un rappel EtherCAT uniquement.
Version : doc 1.4.2 / NanoLib 1.3.0
22
8 Référence classes / fonctions
4 = NanolibRest 5 = NanolibUSB
Active un rappel REST uniquement. Active un rappel USB uniquement.
unsetLoggingCallback () Utilisez cette fonction pour annuler un pointeur de rappel de journalisation.
void virtuel nlc::NanoLibAccessor::unsetLoggingCallback()
readNumber () Utilisez cette fonction pour lire une valeur numérique dans le dictionnaire d'objets.
Résultat virtuelInt nlc::NanoLibAccessor::readNumber (const DeviceHandle deviceHandle, const OdIndex odIndex)
Paramètres deviceHandle odIndex
Renvoie RésultatInt
Spécifie à partir de quel périphérique de bus NanoLib lit. Spécifie le (sous-)index à partir duquel lire. Fournit une valeur numérique non interprétée (peut être signée, non signée, valeurs fixes de 16.16 bits).
readNumberArray () Utilisez cette fonction pour lire des tableaux numériques à partir du dictionnaire d'objets.
ResultArrayInt virtuel nlc::NanoLibAccessor::readNumberArray (const DeviceHandle deviceHandle, const uint16_t index)
Paramètres index du handle de l'appareil
Renvoie ResultArrayInt
Spécifie à partir de quel périphérique de bus NanoLib lit. Index d'objet de tableau. Fournit un tableau d’entiers.
readBytes () Utilisez cette fonction pour lire des octets arbitraires (données d'objet de domaine) à partir du dictionnaire d'objets.
Tableau de résultats virtuel Byte nlc::NanoLibAccessor::readBytes (const DeviceHandle deviceHandle, const OdIndex odIndex)
Paramètres deviceHandle odIndex
Renvoie ResultArrayByte
Spécifie à partir de quel périphérique de bus NanoLib lit. Spécifie le (sous-)index à partir duquel lire. Fournit un tableau d'octets.
readString () Utilisez cette fonction pour lire des chaînes à partir du répertoire d'objets.
chaîne de résultat virtuelle nlc::NanoLibAccessor::readString (const DeviceHandle deviceHandle, const OdIndex odIndex)
Paramètres deviceHandle odIndex
Renvoie la chaîne de résultats
Spécifie à partir de quel périphérique de bus NanoLib lit. Spécifie le (sous-)index à partir duquel lire. Fournit les noms de périphériques sous forme de chaîne.
Version : doc 1.4.2 / NanoLib 1.3.0
23
8 Référence classes / fonctions
writeNumber () Utilisez cette fonction pour écrire des valeurs numériques dans le répertoire d'objets.
Résultat virtuelVoid nlc::NanoLibAccessor::writeNumber (const DeviceHandle deviceHandle, int64_t valeur, const OdIndex odIndex, unsigned int bitLength)
Paramètres DeviceHandle valeur odIndex bitLength
Renvoie RésultatVoid
Spécifie sur quel périphérique de bus NanoLib écrit. La valeur non interprétée (peut être signée, non signée, correctif 16.16). Spécifie le (sous-)index à partir duquel lire. Longueur en bits. Confirme qu'une fonction void a été exécutée.
writeBytes () Utilisez cette fonction pour écrire des octets arbitraires (données d'objet de domaine) dans le répertoire d'objets.
Résultat virtuelVoid nlc::NanoLibAccessor::writeBytes (const DeviceHandle deviceHandle, const std::vector & données, const OdIndex odIndex)
Paramètres dispositifHandle données odIndex
Renvoie RésultatVoid
Spécifie sur quel périphérique de bus NanoLib écrit. Vecteur/tableau d'octets. Spécifie le (sous-)index à partir duquel lire. Confirme qu'une fonction void a été exécutée.
télécharger le micrologiciel ()
Utilisez cette fonction pour mettre à jour le micrologiciel de votre contrôleur.
Résultat virtuelVoid nlc::NanoLibAccessor::uploadFirmware (const DeviceHandle deviceHandle, const std::vector & fwData, NlcDataTransferCallback* rappel)
Paramètres deviceHandle fwData NlcDataTransferCallback
Renvoie RésultatVoid
Spécifie quel périphérique de bus NanoLib est mis à jour. Tableau contenant les données du micrologiciel. Un traceur de progression des données. Confirme qu'une fonction void a été exécutée.
téléchargerFirmwareFromFile ()
Utilisez cette fonction pour mettre à jour le micrologiciel de votre contrôleur en téléchargeant son file.
Résultat virtuelVoid nlc::NanoLibAccessor::uploadFirmwareFromFile (const DeviceHandle deviceHandle, const std::string & absoluFileChemin, rappel NlcDataTransferCallback*)
Paramètres DeviceHandle absoluFileChemin NlcDataTransferCallback
Renvoie RésultatVoid
Spécifie quel périphérique de bus NanoLib est mis à jour. Chemin de file contenant des données de firmware (std::string). Un traceur de progression des données. Confirme qu'une fonction void a été exécutée.
Version : doc 1.4.2 / NanoLib 1.3.0
24
8 Référence classes / fonctions
téléchargerBootloader()
Utilisez cette fonction pour mettre à jour le chargeur de démarrage de votre contrôleur.
Résultat virtuelVoid nlc::NanoLibAccessor::uploadBootloader (const DeviceHandle deviceHandle, const std::vector & btData, NlcDataTransferCallback* rappel)
Paramètres deviceHandle btData NlcDataTransferCallback
Renvoie RésultatVoid
Spécifie quel périphérique de bus NanoLib est mis à jour. Tableau contenant les données du chargeur de démarrage. Un traceur de progression des données. Confirme qu'une fonction void a été exécutée.
téléchargerBootloaderFromFile ()
Utilisez cette fonction pour mettre à jour le chargeur de démarrage de votre contrôleur en téléchargeant son file.
Résultat virtuelVoid nlc::NanoLibAccessor::uploadBootloaderFromFile (const DeviceHandle deviceHandle, const std::string & bootloaderAbsoluteFileChemin, rappel NlcDataTransferCallback*)
Paramètres deviceHandle bootloaderAbsoluteFileChemin NlcDataTransferCallback
Renvoie RésultatVoid
Spécifie quel périphérique de bus NanoLib est mis à jour. Chemin de file contenant les données du chargeur de démarrage (std::string). Un traceur de progression des données. Confirme qu'une fonction void a été exécutée.
téléchargerBootloaderFirmware ()
Utilisez cette fonction pour mettre à jour le chargeur de démarrage et le micrologiciel de votre contrôleur.
Résultat virtuelVoid nlc::NanoLibAccessor::uploadBootloaderFirmware (const DeviceHandle deviceHandle, const std::vector & btData, const std::vector & fwData, NlcDataTransferCallback* rappel)
Paramètres deviceHandle btData fwData NlcDataTransferCallback
Renvoie RésultatVoid
Spécifie quel périphérique de bus NanoLib est mis à jour. Tableau contenant les données du chargeur de démarrage. Tableau contenant les données du micrologiciel. Un traceur de progression des données. Confirme qu'une fonction void a été exécutée.
téléchargerBootloaderFirmwareFromFile ()
Utilisez cette fonction pour mettre à jour le chargeur de démarrage et le micrologiciel de votre contrôleur en téléchargeant le files.
Résultat virtuelVoid nlc::NanoLibAccessor::uploadBootloaderFirmwareFromFile (const DeviceHandle deviceHandle, const std::string & bootloaderAbsoluteFileChemin, const std::string & absoluFileChemin, rappel NlcDataTransferCallback*)
Paramètres deviceHandle bootloaderAbsoluteFileChemin absoluFileChemin NlcDataTransferCallback
Renvoie RésultatVoid
Spécifie quel périphérique de bus NanoLib est mis à jour. Chemin de file contenant les données du chargeur de démarrage (std::string). Chemin vers file contenant les données du firmware (uint8_t). Un traceur de progression des données. Confirme qu'une fonction void a été exécutée.
Version : doc 1.4.2 / NanoLib 1.3.0
25
8 Référence classes / fonctions
téléchargerNanoJ ()
Utilisez cette fonction publique pour mettre à jour le programme NanoJ sur votre contrôleur.
Résultat virtuelVoid nlc::NanoLibAccessor::uploadNanoJ (DeviceHandle const deviceHandle, std::vector const & vmmData, NlcDataTransferCallback* rappel)
Paramètres deviceHandle vmmData NlcDataTransferCallback
Renvoie RésultatVoid
Spécifie sur quel périphérique de bus NanoLib télécharge. Tableau contenant des données NanoJ. Un traceur de progression des données. Confirme qu'une fonction void a été exécutée.
téléchargerNanoJFromFile ()
Utilisez cette fonction publique pour télécharger le programme NanoJ sur votre contrôleur en téléchargeant le file.
Résultat virtuelVoid nlc::NanoLibAccessor::uploadNanoJFromFile (const DeviceHandle deviceHandle, const std::string & absoluFileChemin, rappel NlcDataTransferCallback*)
Paramètres DeviceHandle absoluFileChemin NlcDataTransferCallback
Renvoie RésultatVoid
Spécifie sur quel périphérique de bus NanoLib télécharge. Chemin de file contenant des données NanoJ (std::string). Un traceur de progression des données. Confirme qu'une fonction void a été exécutée.
DisconnectDevice () Utilisez cette fonction pour déconnecter votre appareil par DeviceHandle.
Résultat virtuelVoid nlc::NanoLibAccessor::disconnectDevice (DeviceHandle const deviceHandle)
Paramètres deviceHandle Renvoie ResultVoid
Spécifie de quel périphérique de bus NanoLib se déconnecte. Confirme qu'une fonction void a été exécutée.
RemoveDevice () Utilisez cette fonction pour supprimer votre appareil de la liste interne des appareils de NanoLib.
Résultat virtuelVoid nlc::NanoLibAccessor::removeDevice (const DeviceHandle deviceHandle)
Paramètres deviceHandle Renvoie ResultVoid
Spécifie quel périphérique de bus NanoLib est supprimé de la liste. Confirme qu'une fonction void a été exécutée.
closeBusHardware () Utilisez cette fonction pour vous déconnecter de votre matériel de bus de terrain.
Résultat virtuelVoid nlc::NanoLibAccessor::closeBusHardware (BusHardwareId const & busHwId)
Paramètres busHwId Renvoie ResultVoid
Spécifie le bus de terrain duquel se déconnecter. Confirme qu'une fonction void a été exécutée.
Version : doc 1.4.2 / NanoLib 1.3.0
26
8 Référence classes / fonctions
8.2 BusHardwareId
Utilisez cette classe pour identifier un matériel de bus un à un ou pour distinguer différents matériels de bus les uns des autres. Cette classe (sans fonctions de définition pour être immuable dès la création) contient également des informations sur :
Matériel (= nom de l'adaptateur, adaptateur réseau, etc.) Protocole à utiliser (= Modbus TCP, CANopen, etc.) Spécificateur du matériel du bus (= nom du port série, nom convivial MAC
adresse, etc.)
BusHardwareId() [1/3] Constructeur qui crée un nouvel objet d'identification de matériel de bus.
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_, std::string const & protocole_, std::string const & hardwareSpecifier_, std::string const & nom_)
Paramètres busHardware_ protocol_ hardwareSpecifier_ extraHardwareSpecifier_ name_
Type de matériel (= ZK-USB-CAN-1 etc.). Protocole de communication bus (= CANopen etc.). Le spécificateur d'un matériel (= COM3 etc.). Le spécificateur supplémentaire du matériel (par exemple, les informations sur l'emplacement USB). Un nom convivial (= AdapterName (Port) etc. ).
BusHardwareId() [2/3] Constructeur qui crée un nouvel objet d'ID de matériel de bus, avec l'option d'un spécificateur de matériel supplémentaire.
nlc::BusHardwareId::BusHardwareId (constante std::string et busHardware_, constante std::string et protocole_, constante std::string et hardwareSpecifier_, constante std::string et extraHardwareSpecifier_, constante std::string et nom_)
Paramètres busHardware_ protocol_ hardwareSpecifier_ extraHardwareSpecifier_ name_
Type de matériel (= ZK-USB-CAN-1 etc.). Protocole de communication bus (= CANopen etc.). Le spécificateur d'un matériel (= COM3 etc.). Le spécificateur supplémentaire du matériel (par exemple, les informations sur l'emplacement USB). Un nom convivial (= AdapterName (Port) etc. ).
BusHardwareId () [3/3] Constructeur qui copie un busHardwareId existant.
nlc :: BusHardwareId :: BusHardwareId (BusHardwareId const &)
nlc :: BusHardwareId :: BusHardwareId (BusHardwareId const &)
Paramètres busHardwareId
Nomme l’ID matériel du bus à partir duquel copier.
equals () Compare un nouvel ID matériel de bus à ceux existants.
bool nlc::BusHardwareId::equals (BusHardwareId const & autre) const
Paramètres autres Renvoie vrai
Un autre objet de la même classe. Si les deux sont égaux dans toutes les valeurs.
Version : doc 1.4.2 / NanoLib 1.3.0
27
8 Référence classes / fonctions
FAUX
Si les valeurs diffèrent.
getBusHardware () Lit la chaîne matérielle du bus.
std::string nlc::BusHardwareId::getBusHardware() const
Renvoie une chaîne
getHardwareSpecifier () Lit la chaîne de spécification du matériel du bus (= nom du réseau, etc.).
std::string nlc::BusHardwareId::getHardwareSpecifier() const
Renvoie une chaîne
getExtraHardwareSpecifier () Lit la chaîne de spécification du matériel supplémentaire du bus (= adresse MAC, etc.).
std :: chaîne nlc :: BusHardwareId :: getExtraHardwareSpecifier () const
Renvoie une chaîne
getName () Lit le nom convivial du matériel du bus.
std::string nlc::BusHardwareId::getName () const
Renvoie une chaîne
getProtocol() Lit la chaîne de protocole du bus.
std::string nlc::BusHardwareId::getProtocol() const
Renvoie une chaîne
toString () Renvoie l'ID matériel du bus sous forme de chaîne.
std::string nlc::BusHardwareId::toString() const
Renvoie une chaîne
8.3 Options du matériel du bus
Retrouvez dans cette classe, dans une liste clé-valeur de chaînes, toutes les options nécessaires à l'ouverture d'un bus matériel.
Version : doc 1.4.2 / NanoLib 1.3.0
28
8 Référence classes / fonctions
BusHardwareOptions () [1/2] Construit un nouvel objet d'option matérielle de bus.
nlc::BusHardwareOptions::BusHardwareOptions () Utilisez la fonction addOption () pour ajouter des paires clé-valeur.
BusHardwareOptions () [2/2] Construit un nouvel objet d'options matérielles de bus avec la carte clé-valeur déjà en place.
nlc::BusHardwareOptions::BusHardwareOptions (std::map (const et options)
Options des paramètres
Une carte avec les options de fonctionnement du matériel du bus.
addOption () Crée des clés et des valeurs supplémentaires.
void nlc::BusHardwareOptions::addOption (std::string const & clé, std::string const & valeur)
Valeur clé des paramètres
Example : BAUD_RATE_OPTIONS_NAME, voir bus_hw_options_ defaults
Example : BAUD_RATE_1000K, voir bus_hw_options_defaults
equals () Compare les BusHardwareOptions aux options existantes.
bool nlc::BusHardwareOptions::equals (BusHardwareOptions const & autre) const
Paramètres autres Renvoie vrai
FAUX
Un autre objet de la même classe. Si l’autre objet a exactement les mêmes options. Si l'autre objet a des clés ou des valeurs différentes.
getOptions () Lit toutes les paires clé-valeur ajoutées.
std::carte nlc::BusHardwareOptions::getOptions()
Renvoie la carte de chaînes
toString () Renvoie toutes les clés/valeurs sous forme de chaîne.
std::string nlc::BusHardwareId::toString() const
Renvoie une chaîne
8.4 BusHwOptionsPar défaut
Cette classe d'options de configuration par défaut possède les attributs publics suivants :
Version : doc 1.4.2 / NanoLib 1.3.0
29
8 Référence classes / fonctions
const CanBus const Série const RESTfulBus const EtherCATBus
canBus = CanBus () série = Série () restfulBus = RESTfulBus() ethercatBus = EtherCATBus()
8.5 Taux en Bauds Can
Structure qui contient les débits en bauds du bus CAN dans les attributs publics suivants :
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
BAUD_RATE_1000K = "1000k" BAUD_RATE_800K = "800k" BAUD_RATE_500K = "500k" BAUD_RATE_250K = "250k" BAUD_RATE_125K = "125k" BAUD_RATE_100K = "100k" BAUD_RATE_50K = "50k" BAUD_RATE_20K = "20 10k" BAUD_RATE_10K = "5k" BAUD_RATE_5K = "XNUMXk"
8.6 CanBus
Classe d'options de configuration par défaut avec les attributs publics suivants :
const std::string const CanBaudRate const Ixxat
BAUD_RATE_OPTIONS_NAME = « peut adapter le débit en bauds » baudRate = CanBaudRate () ixxat = Ixxat ()
8.7 Service CanOpenNmt
Pour le service NMT, cette structure contient les états CANopen NMT sous forme de valeurs de chaîne dans les attributs publics suivants :
const std::string const std::string const std::string const std::string
START = « START » STOP = « STOP » PRE_OPERATIONAL = « PRE_OPERATIONAL » RESET = « RESET » RESET_COMMUNICATION = « RESET_COMMUNICATION »
8.8 CanOpenNmtState
Cette structure contient les états CANopen NMT sous forme de valeurs de chaîne dans les attributs publics suivants :
const std::string const std::string const std::string const std::string
STOPPED = « STOPPED » PRE_OPERATIONAL = « PRE_OPERATIONAL » OPERATIONAL = « OPERATIONAL » INITIALISATION = « INITIALISATION » INCONNU = « INCONNU »
8.9 Structure EtherCATBus
Cette structure contient les options de configuration de communication EtherCAT dans les attributs publics suivants :
Version : doc 1.4.2 / NanoLib 1.3.0
30
8 Référence classes / fonctions
const std::string NETWORK_FIRMWARE_STATE_OP- État du réseau traité comme mode micrologiciel. Acceptable
TION_NAME = « État du micrologiciel du réseau »
valeurs (par défaut = PRE_OPERATIONAL) :
EtherCATState :: PRE_OPERATIONAL EtherCATState :: SAFE_OPERATIONAL EtherCATState :: OPERATIONAL
const std::string ETAT_DE_FIRMWARE_RESEAU_PAR_DEFAUT = « PRE_OPERATIONNEL »
const std::string EXCLUSIVE_LOCK_TIMEOUT_OP- Délai d'attente en millisecondes pour acquérir un verrou exclusif sur
TION_NAME = « Délai d’expiration du verrouillage partagé »
le réseau (par défaut = 500 ms).
const non signé int DEFAULT_EXCLUSIVE_LOCK_ TIMEOUT = « 500 »
const std::string SHARED_LOCK_TIMEOUT_OPTION_ Délai d'attente en millisecondes pour acquérir un verrou partagé sur
NOM = « Délai d’expiration du verrouillage partagé »
le réseau (par défaut = 250 ms).
const non signé int DEFAULT_SHARED_LOCK_TIMEOUT = « 250 »
const std::string READ_TIMEOUT_OPTION_NAME = Délai d'attente en millisecondes pour une opération de lecture (par défaut)
« Délai de lecture expiré »
= 700 ms).
const non signé int DEFAULT_READ_TIMEOUT = « 700 »
const std::string WRITE_TIMEOUT_OPTION_NAME = Délai d'attente en millisecondes pour une opération d'écriture (par défaut)
« Délai d'écriture expiré »
= 200 ms).
const non signé int DEFAULT_WRITE_TIMEOUT = « 200 »
const std::string READ_WRITE_ATTEMPTS_OPTION_ Nombre maximal de tentatives de lecture ou d'écriture (valeurs différentes de zéro)
NOM = « Tentatives de lecture/écriture »
seulement; par défaut = 5).
const non signé int DEFAULT_READ_WRITE_ATTEMPTS = « 5 »
const std::string CHANGE_NETWORK_STATE_ATTEMPTS_OPTION_NAME = « Tentatives de modification de l'état du réseau »
Nombre maximum de tentatives pour modifier l'état du réseau (valeurs différentes de zéro uniquement ; valeur par défaut = 10).
const unsigned int DEFAULT_CHANGE_NETWORK_ STATE_ATTEMPTS = « 10 »
const std::string PDO_IO_ENABLED_OPTION_NAME Active ou désactive le traitement PDO pour les entrées numériques- /
= « PDO IO activé »
sorties (« Vrai » ou « Faux » uniquement ; valeur par défaut = « Vrai »).
const std::string DEFAULT_PDO_IO_ENABLED = « Vrai »
8.10 Structure EtherCATState
Cette structure contient les états de l'esclave/du réseau EtherCAT sous forme de valeurs de chaîne dans les attributs publics suivants. Remarque : L'état par défaut à la mise sous tension est PRE_OPERATIONAL ; NanoLib ne peut fournir aucun état « OPÉRATIONNEL » fiable dans un système d'exploitation non temps réel :
const std::string const std::string const std::string const std::string const std::string
NONE = « NONE » INIT = « INIT » PRE_OPERATIONAL = « PRE_OPERATIONAL » BOOT = « BOOT » SAFE_OPERATIONAL = « SAFE_OPERATIONAL » OPERATIONAL = « OPERATIONAL »
Version : doc 1.4.2 / NanoLib 1.3.0
31
8 Référence classes / fonctions
8.11 Ixxat
Cette structure contient toutes les informations relatives à l'Ixxat usb-to-can dans les attributs publics suivants :
const std::string
ADAPTER_BUS_NUMBER_OPTIONS_NAME = « numéro de bus adaptateur ixxat »
const IxxatAdapterBusNumber adaptateurBusNumber = IxxatAdapterBusNumber ()
8.12 Numéro de bus IxxatAdapterBus
Cette structure contient le numéro de bus pour l'Ixxat usb-to-can dans les attributs publics suivants :
const std::string const std::string const std::string const std::string
BUS_NUMBER_0_DEFAULT = « 0 » BUS_NUMBER_1 = « 1 » BUS_NUMBER_2 = « 2 » BUS_NUMBER_3 = « 3 »
8.13 Peak
Cette structure contient toutes les informations pour le Peak usb-to-can dans les attributs publics suivants :
const std::string
ADAPTER_BUS_NUMBER_OPTIONS_NAME = « numéro de bus d'adaptateur maximal »
const PeakAdapterBusNumber adapterBusNumber = PeakAdapterBusNumber ()
8.14 Numéro de bus PeakAdapter
Cette structure contient le numéro de bus pour le Peak usb-to-can dans les attributs publics suivants :
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
BUS_NUMBER_1_DEFAULT = std::to_string (PCAN_USBBUS1) BUS_NUMBER_2 = std::to_string (PCAN_USBBUS2) BUS_NUMBER_3 = std::to_string (PCAN_USBBUS3) BUS_NUMBER_4 = std::to_string (PCAN_USBBUS4) BUS_NUMBER_5 = std::to_string (PCAN_USBBUS5) BUS_NUMBER_6 = std::to_string (PCAN_USBBUS6) BUS_NUMBER_7 = std::to_string (PCAN_USBBUS7) BUS_NUMBER_8 = std::to_string (PCAN_USBBUS8) BUS_NUMBER_9 = std::to_string (PCAN_USBBUS9) BUS_NUMBER_10 = std::to_string (PCAN_USBBUS10) BUS_NUMBER_11 = std::to_string (PCAN_USBBUS11) BUS_NUMBER_12 = std::to_string (PCAN_USBBUS12) BUS_NUMBER_13 = std::to_string (PCAN_USBBUS13) BUS_NUMBER_14 = std::to_string (PCAN_USBBUS14) BUS_NUMBER_15 = std::to_string (PCAN_USBBUS15) BUS_NUMBER_16 = std::to_string (PCAN_USBBUS16)
8.15 Poignée de périphérique
Cette classe représente un handle pour contrôler un périphérique sur un bus et possède les fonctions de membre public suivantes.
DeviceHandle() DeviceHandle (poignée uint32_t)
Version : doc 1.4.2 / NanoLib 1.3.0
32
8 Référence classes / fonctions
égal à () Se compare à un descripteur de périphérique donné.
bool est égal à (DeviceHandle const autre) const (uint32_t handle)
toString () Renvoie une représentation sous forme de chaîne du handle de périphérique.
std::string toString() const
get() Renvoie le handle de l'appareil.
uint32_t get() const
8.16 ID de périphérique
Utilisez cette classe (non immuable dès la création) pour identifier et distinguer les appareils sur un bus :
Identifiant de l'adaptateur matériel
Identifiant de l'appareil
Description
La signification des valeurs d'ID/description de l'appareil dépend du bus. Par exempleample, un bus CAN peut utiliser l'ID entier.
DeviceId () [1/3] Construit un nouvel objet ID de périphérique.
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId_, unsigned int deviceId_, std::string const & description_)
Paramètres busHardwareId_ deviceId_ description_
Identifiant du bus. Un index; soumis au bus (= ID du nœud CANopen, etc.). Une description (peut être vide) ; sous réserve de bus.
DeviceId() [2/3] Construit un nouvel objet d'ID de périphérique avec des options d'ID étendues.
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId, unsigned int deviceId_, std::string const & description_ std::vector const & extraId_, std::string const & extraStringId_)
Paramètres busHardwareId_deviceId_description_extraId_extraStringId_
Identifiant du bus. Un index ; sous réserve du bus (= ID de nœud CANopen etc.). Une description (peut être vide) ; sous réserve du bus. Un identifiant supplémentaire (peut être vide) ; la signification dépend du bus. ID de chaîne supplémentaire (peut être vide) ; la signification dépend du bus.
DeviceId () [3/3] Construit une copie d'un objet ID de périphérique.
nlc::DeviceId::DeviceId (DeviceId const &)
Version : doc 1.4.2 / NanoLib 1.3.0
33
8 Référence classes / fonctions
Paramètres DeviceId_
ID de l’appareil à partir duquel copier.
equals () Compare les nouveaux objets aux objets existants.
bool nlc::DeviceId::equals (DeviceId const & autre) const
Renvoie un booléen
getBusHardwareId () Lit l'ID matériel du bus.
BusHardwareId nlc::DeviceId::getBusHardwareId () const
Renvoie BusHardwareId
getDescription () Lit la description de l'appareil (peut-être inutilisée).
std::string nlc::DeviceId::getDescription() const
Renvoie une chaîne
getDeviceId () Lit l'ID de l'appareil (peut-être inutilisé).
int non signé nlc::DeviceId::getDeviceId() const
Renvoie un entier non signé
toString () Renvoie l'objet sous forme de chaîne.
std::string nlc::DeviceId::toString() const
Renvoie une chaîne
getExtraId () Lit l'ID supplémentaire de l'appareil (peut être inutilisé).
const std::vecteur &getExtraId() const
Renvoie le vecteur
Un vecteur des ID supplémentaires supplémentaires (peut être vide) ; la signification dépend du bus.
getExtraStringId () Lit l'ID de chaîne supplémentaire de l'appareil (peut être inutilisé).
std :: string getExtraStringId () const
Version : doc 1.4.2 / NanoLib 1.3.0
34
8 Référence classes / fonctions
Renvoie une chaîne
L'ID de chaîne supplémentaire (peut être vide) ; la signification dépend du bus.
8.17 Convertisseur de niveau de journal
Cette classe renvoie votre niveau de journalisation sous forme de chaîne. static std::string toString (nlc::LogLevel logLevel)
8.18 Convertisseur de modules de log
Cette classe renvoie votre modulesetLoggingLevel() de journal spécifique à la bibliothèque sous forme de chaîne.
statique std::string
toString (nlc::LogModule logModule)
statique std::string toString (nlc::LogModule logModule)
8.19 Dictionnaire d'objets
Cette classe représente un dictionnaire d'objets d'un contrôleur et possède les fonctions membres publiques suivantes : getDeviceHandle()
ResultDeviceHandle virtuel getDeviceHandle () const Renvoie ResultDeviceHandle
getObject() virtuel ResultObjectSubEntry getObject (OdIndex const odIndex) Renvoie ResultObjectSubEntry
getObjectEntry () ResultObjectEntry virtuel getObjectEntry (uint16_t index)
Renvoie ResultObjectEntry
Informe sur les propriétés d'un objet.
obtenirXmlFileNom () chaîne de résultat virtuelle getXmlFileNom () const
Renvoie la chaîne de résultats
Renvoie le XML file nom sous forme de chaîne.
readNumber() virtuel ResultInt readNumber (OdIndex const odIndex) Renvoie ResultInt
readNumberArray() ResultArrayInt virtuel readNumberArray (uint16_t const index)
Version : doc 1.4.2 / NanoLib 1.3.0
35
8 Référence classes / fonctions
Renvoie ResultArrayInt readString ()
ResultString virtuel readString (OdIndex const odIndex) Renvoie ResultString readBytes () ResultArrayByte virtuel readBytes (OdIndex const odIndex) Renvoie ResultArrayByte writeNumber () ResultVoid virtuel writeNumber (OdIndex const odIndex, const int64_t value) Renvoie ResultVoid writeBytes () ResultVoid virtuel writeBytes (OdIndex const OdIndex, std::vector
const & data) Renvoie ResultVoid Liens connexes OdIndex
8.20 Entrée d'objet
Cette classe représente une entrée d'objet du dictionnaire d'objets, possède l'attribut protégé statique suivant et les fonctions membres publiques :
statique nlc::ObjectSubEntry invalidObject
getName () Lit le nom de l'objet sous forme de chaîne.
std::string virtuel getName() const
getPrivate () Vérifie si l'objet est privé.
booléen virtuel getPrivate() const
getIndex () Lit l'adresse de l'index de l'objet.
uint16_t virtuel getIndex() const
Version : doc 1.4.2 / NanoLib 1.3.0
36
8 Référence classes / fonctions
getDataType () Lit le type de données de l'objet.
nlc::ObjectEntryDataType virtuel getDataType() const
getObjectCode () Lit le code objet :
Enregistrement de tableau Var Defstruct Null Deftype
0x00 0x05 0x06 0x07 0x08 0x09
nlc::ObjectCode virtuel getObjectCode () const
getObjectSaveable () Vérifie si l'objet peut être sauvegardé et sa catégorie (voir le manuel du produit pour plus de détails) : APPLICATION, COMMUNICATION, DRIVE, MISC_CONFIG, MODBUS_RTU, NO, TUNING, CUSTOMER, ETHERNET, CANOPEN, VERIFY1020, UNKNOWN_SAVEABLE_TYPE
nlc::ObjectSaveable virtuel getObjectSaveable() const
getMaxSubIndex () Lit le nombre de sous-index pris en charge par cet objet.
uint8_t virtuel getMaxSubIndex() const
getSubEntry() virtuel nlc::ObjectSubEntry & getSubEntry (uint8_t subIndex)
Voir également ObjectSubEntry.
8.21 ObjetSubEntry
Cette classe représente une sous-entrée d'objet (sous-index) du dictionnaire d'objets et possède les fonctions membres publiques suivantes :
getName () Lit le nom de l'objet sous forme de chaîne.
std::string virtuel getName() const
getSubIndex () Lit l'adresse du sous-index.
uint8_t virtuel getSubIndex() const
Version : doc 1.4.2 / NanoLib 1.3.0
37
8 Référence classes / fonctions
getDataType () Lit le type de données de l'objet.
nlc::ObjectEntryDataType virtuel getDataType() const
getSdoAccess() Vérifie si le sous-index est accessible via SDO :
Lecture seule
1
Écrire uniquement
2
LireÉcrire
3
Pas d'accès
0
nlc::ObjectSdoAccessAttribute virtuel getSdoAccess() const
getPdoAccess () Vérifie si le sous-index est accessible/mappable via PDO :
Tx
1
Rx
2
TxRx
3
Non
0
nlc::ObjectPdoAccessAttribute virtuel getPdoAccess() const
getBitLength () Vérifie la longueur du sous-index.
uint32_t virtuel getBitLength() const
getDefaultValueAsNumeric () Lit la valeur par défaut du sous-index pour les types de données numériques.
Résultat virtuelInt getDefaultValueAsNumeric (std::string const & key) const
getDefaultValueAsString () Lit la valeur par défaut du sous-index pour les types de données chaîne.
chaîne de résultat virtuelle getDefaultValueAsString (std::string const & key) const
getDefaultValues () Lit les valeurs par défaut du sous-index.
std::map virtuel getDefaultValues() const
Version : doc 1.4.2 / NanoLib 1.3.0
38
8 Référence classes / fonctions
readNumber () Lit la valeur numérique réelle du sous-index.
Résultat virtuelInt readNumber() const
readString () Lit la valeur réelle de la chaîne du sous-index.
chaîne de résultat virtuelle readString() const
readBytes () Lit la valeur réelle du sous-index en octets.
ResultArrayByte virtuel readBytes() const
writeNumber () Écrit une valeur numérique dans le sous-index.
Résultat virtuelVoid writeNumber (const int64_t valeur) const
writeBytes () Écrit une valeur dans le sous-index en octets.
Résultat virtuelVoid writeBytes (std::vector const et données) const
8.22 Indice Od
Utilisez cette classe (immuable depuis la création) pour envelopper et localiser les index/sous-index du répertoire d'objets. L'OD d'un appareil comporte jusqu'à 65535 0 (255xFFFF) lignes et 0 (XNUMXxFF) colonnes ; avec des espaces entre les rangées discontinues. Consultez la norme CANopen et le manuel de votre produit pour plus de détails.
OdIndex () Construit un nouvel objet OdIndex.
nlc::OdIndex::OdIndex (uint16_t index, uint8_t sous-index)
Sous-index de l'index des paramètres
De 0 à 65535 (0xFFFF) TTC. De 0 à 255 (0xFF) TTC.
getIndex () Lit l'index (de 0x0000 à 0xFFFF).
uint16_t nlc::OdIndex::getIndex() const
Renvoie uint16_t
getSubindex () Lit le sous-index (de 0x00 à 0xFF)
uint8_t nlc::OdIndex::getSubIndex() const
Version : doc 1.4.2 / NanoLib 1.3.0
39
8 Référence classes / fonctions
Renvoie uint8_t
toString () Renvoie l'index et le sous-index sous forme de chaîne. La chaîne par défaut 0xIIII:0xSS se lit comme suit :
I = indice de 0x0000 à 0xFFFF
S = sous-index de 0x00 à 0xFF
std::string nlc::OdIndex::toString () const
Renvoie 0xIIII:0xSS
Représentation sous forme de chaîne par défaut
8.23 Bibliothèque Od
Utilisez cette interface de programmation pour créer des instances de la classe ObjectDictionary à partir de XML. Grâce à assignObjectDictionary, vous pouvez ensuite lier chaque instance à un appareil spécifique grâce à un identifiant créé de manière unique. Les instances ObjectDictionary ainsi créées sont stockées dans l'objet OdLibrary pour être accessibles par index. La classe ODLibrary charge les éléments ObjectDictionary à partir de file ou un tableau, les stocke et possède les fonctions de membre public suivantes :
getObjectDictionaryCount() virtuel uint32_t getObjectDictionaryCount() const
getObjectDictionary () ResultObjectDictionary virtuel getObjectDictionary (uint32_t odIndex)
Renvoie le DictionnaireObjetRésultat
addObjectDictionaryFromFile ()
ResultObjectDictionary virtuel addObjectDictionaryFromFile (std::string const & absoluXmlFileChemin)
Renvoie le DictionnaireObjetRésultat
addObjectDictionary()
ResultObjectDictionary virtuel addObjectDictionary (std::vector const & odXmlData, const std::string &xmlFileChemin = std::string ())
Renvoie le DictionnaireObjetRésultat
8.24 Aide OdTypes
En plus des fonctions membres publiques suivantes, cette classe contient des types de données personnalisés. Remarque : pour vérifier vos types de données personnalisés, recherchez la classe d'énumération ObjectEntryDataType dans od_types.hpp.
uintToObjectCode () Convertit les entiers non signés en code objet :
Type de définition nul
0x00 0x05
Version : doc 1.4.2 / NanoLib 1.3.0
40
8 Référence classes / fonctions
Enregistrement de tableau de variables Defstruct
0x06 0x07 0x08 0x09
Code d'objet statique uintToObjectCode (code d'objet int non signé)
isNumericDataType () Informe si un type de données est numérique ou non.
booléen statique isNumericDataType (ObjectEntryDataType dataType)
isDefstructIndex () Informe si un objet est un index de structure de définition ou non.
bool statique isDefstructIndex (uint16_t typeNum)
isDeftypeIndex () Informe si un objet est un index de type définition ou non.
bool statique isDeftypeIndex (uint16_t typeNum)
isComplexDataType () Informe si un type de données est complexe ou non.
booléen statique isComplexDataType (ObjectEntryDataType dataType)
uintToObjectEntryDataType () Convertit les entiers non signés en type de données OD.
sstatic ObjectEntryDataType uintToObjectEntryDataType (uint16_t objectDataType)
objectEntryDataTypeToString () Convertit le type de données OD en chaîne.
objet statique std::stringEntryDataTypeToString (ObjectEntryDataType odDataType)
stringToObjectEntryDatatype () Convertit la chaîne en type de données OD si possible. Sinon, renvoie UNKNOWN_DATATYPE.
statique ObjectEntryDataType chaîneToObjectEntryDatatype (std::string dataTypeString)
Version : doc 1.4.2 / NanoLib 1.3.0
41
8 Référence classes / fonctions
objectEntryDataTypeBitLength () Informe sur la longueur en bits d'un type de données d'entrée d'objet.
statique uint32_t objectEntryDataTypeBitLength (ObjectEntryDataType const & dataType)
8.25 Structure RESTfulBus
Cette structure contient les options de configuration de communication pour l'interface RESTful (sur Ethernet). Il contient les attributs publics suivants :
const std :: chaîne const non signée longue const std :: chaîne const non signée longue const std :: chaîne const non signée longue
CONNECT_TIMEOUT_OPTION_NAME = « Délai d'expiration de la connexion RESTful » DEFAULT_CONNECT_TIMEOUT = 200 REQUEST_TIMEOUT_OPTION_NAME = « Délai d'expiration de la demande RESTful » DEFAULT_REQUEST_TIMEOUT = 200 RESPONSE_TIMEOUT_OPTION_NAME = « Délai d'expiration de la réponse RESTful » DEFAULT_RESPONSE_TIMEOUT = 750
8.26 ProfinetDCP
Sous Linux, l'application appelante a besoin des fonctionnalités CAP_NET_ADMIN et CAP_NET_RAW. Pour activer : sudo setcap 'cap_net_admin,cap_net_raw+eip' ./executable. Sous Windows, l'interface ProfinetDCP utilise WinPcap (testé avec la version 4.1.3) ou Npcap (testé avec les versions 1.60 et 1.30). Il recherche ainsi la bibliothèque wpcap.dll chargée dynamiquement dans l'ordre suivant (Remarque : pas de support actuel de Win10Pcap) :
1. Répertoire Nanolib.dll 2. Répertoire système Windows SystemRoot%System32 3. Répertoire d'installation Npcap SystemRoot%System32Npcap 4. Chemin d'environnement
Cette classe représente une interface Profinet DCP et possède les fonctions de membre public suivantes :
getScanTimeout () Informe sur un délai d'attente d'analyse de périphérique (par défaut = 2000 ms).
uint32_t virtuel nlc::ProfinetDCP::getScanTimeout() const
setScanTimeout () Définit un délai d'expiration de l'analyse du périphérique (par défaut = 2000 XNUMX ms).
void virtuel nlc::setScanTimeout (uint32_t timeoutMsec)
getResponseTimeout () Informe d'un délai de réponse de l'appareil pour les opérations de configuration, de réinitialisation et de clignotement (par défaut = 1000 ms).
uint32_t virtuel nlc::ProfinetDCP::getResponseTimeout() const
setResponseTimeout () Informe d'un délai de réponse de l'appareil pour les opérations de configuration, de réinitialisation et de clignotement (par défaut = 1000 ms).
void virtuel nlc::ProfinetDCP::setResponseTimeout (uint32_t timeoutMsec)
Version : doc 1.4.2 / NanoLib 1.3.0
42
8 Référence classes / fonctions
estServiceAvailable ()
Utilisez cette fonction pour vérifier la disponibilité du service Profinet DCP.
Validité/disponibilité de la carte réseau Windows : disponibilité WinPcap/Npcap Linux : capacités CAP_NET_ADMIN/CAP_NET_RAW
virtuel ResultVoid nlc :: ProfinetDCP :: isServiceAvailable (const BusHardwareId & busHardwareId)
Paramètres BusHardwareId Renvoie vrai
FAUX
ID matériel du service Profinet DCP à vérifier. Le service est disponible. Le service est indisponible.
scanProfinetDevices () Utilisez cette fonction pour analyser le bus matériel pour détecter la présence de périphériques Profinet.
Résultat virtuelProfinetDevices scanProfinetDevices (const BusHardwareId & busHardwareId)
Paramètres BusHardwareId Renvoie ResultProfinetDevices
Spécifie chaque bus de terrain à ouvrir. Le matériel est ouvert.
setupProfinetDevice () Établit les paramètres de périphérique suivants :
Nom de l'appareil
Adresse IP
Masque de réseau
Passerelle par défaut
Résultat virtuelVoid nlc::setupProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice struct & profinetDevice, bool savePermanent)
resetProfinetDevice () Arrête l'appareil et le réinitialise aux paramètres d'usine.
Résultat virtuelVoid nlc::resetProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice & profinetDevice)
clignotantProfinetDevice () Commande au périphérique Profinet de commencer à faire clignoter sa LED Profinet.
Résultat virtuelVoid nlc::blinkProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice &profinetDevice)
validateProfinetDeviceIp () Utilisez cette fonction pour vérifier l'adresse IP de l'appareil.
Résultat virtuelVoid validateProfinetDeviceIp (const BusHardwareId &busHardwareId, const ProfinetDevice & profinetDevice)
Paramètres BusHardwareId ProfinetDevice
Spécifie l'ID du matériel à vérifier. Spécifie le périphérique Profinet à valider.
Version : doc 1.4.2 / NanoLib 1.3.0
43
8 Référence classes / fonctions
Renvoie RésultatVoid
8.27 Structure ProfinetDevice
Les données de l'appareil Profinet ont les attributs publics suivants :
std::string std::string std::array< uint8_t, 6 > uint32_t uint32_t uint32_t
deviceName deviceVendor adresse MAC adresse IP masque réseau passerelle par défaut
L'adresse MAC est fournie sous forme de tableau au format macAddress = {xx, xx, xx, xx, xx, xx} ; alors que l'adresse IP, le masque de réseau et la passerelle sont tous interprétés comme des nombres hexadécimaux big endian, tels que :
Adresse IP : 192.168.0.2 Masque réseau : 255.255.0.0 Passerelle : 192.168.0.1
0xC0A80002 0xFFFF0000 0xC0A80001
8.28 Classes de résultats
Utilisez les valeurs de retour « facultatives » de ces classes pour vérifier si un appel de fonction a réussi ou non, et également localiser les raisons de l'échec. En cas de succès, la fonction hasError() renvoie false. Par getResult(), vous pouvez lire la valeur du résultat selon le type (ResultInt etc.). Si un appel échoue, vous lisez la raison avec getError().
Attributs protégés
chaîne NlcErrorCode uint32_t
chaîne d'erreur code d'erreur exErrorCode
En outre, cette classe possède les fonctions de membre public suivantes :
hasError () Lit le succès d'un appel de fonction.
bool nlc::Result::hasError() const
Retours
vrai faux
Appel échoué. Utilisez getError () pour lire la valeur. Appel réussi. Utilisez getResult () pour lire la valeur.
getError () Lit la raison si un appel de fonction échoue.
const std::string nlc::Result::getError() const
Renvoie la chaîne const
Version : doc 1.4.2 / NanoLib 1.3.0
44
8 Référence classes / fonctions
result() Les fonctions suivantes aident à définir les résultats exacts :
Résultat (std::string const & errorString_)
Résultat (NlcErrorCode const & errCode, std::string const & errorString_)
Résultat (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
Résultat (const résultat et résultat)
getErrorCode () Lit le NlcErrorCode.
NlcErrorCode getErrorCode () const
getExErrorCode() uint32_t getExErrorCode() const
8.28.1 RésultatVide
NanoLib vous envoie une instance de cette classe si la fonction renvoie void. La classe hérite des fonctions publiques et des attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
ResultVoid () Les fonctions suivantes aident à définir le résultat exact du vide :
RésultatVoid (std::string const &errorString_)
ResultVoid (NlcErrorCode const & errCode, std::string const & errorString_)
ResultVoid (NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultVoid (const de résultat et résultat)
8.28.2 RésultatInt
NanoLib vous envoie une instance de cette classe si la fonction renvoie un entier. La classe hérite des fonctions publiques/attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult() Renvoie le résultat entier si un appel de fonction a réussi.
int64_t getResult() const
Renvoie int64_t
Version : doc 1.4.2 / NanoLib 1.3.0
45
8 Référence classes / fonctions
ResultInt () Les fonctions suivantes aident à définir le résultat entier exact :
ResultInt (int64_t result_)
ResultInt (std::string const & errorString_)
ResultInt (NlcErrorCode const & errCode, std::string const & errorString_)
ResultInt (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultInt (const résultat et résultat)
8.28.3 Chaîne de résultats
NanoLib vous envoie une instance de cette classe si la fonction renvoie une chaîne. La classe hérite des fonctions publiques/attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult () Lit le résultat de la chaîne si un appel de fonction a réussi.
const std::string nlc::ResultString::getResult()
Renvoie la chaîne const
ResultString () Les fonctions suivantes aident à définir le résultat exact de la chaîne :
ResultString (std::string const & message, bool hasError_)
Chaîne de résultat (NlcErrorCode const & errCode, std::string const & errorString_)
ResultString (NlcErrorCode const & errCode, const uint32_t exErrCode, std:: chaîne const & errorString_)
ResultString (const résultat et résultat)
8.28.4 RésultatArrayByte
NanoLib vous envoie une instance de cette classe si la fonction renvoie un tableau d'octets. La classe hérite des fonctions publiques / attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult() Lit le vecteur d'octets si un appel de fonction a réussi.
const std::vecteur nlc::ResultArrayByte::getResult()
Renvoie un vecteur constant
Version : doc 1.4.2 / NanoLib 1.3.0
46
8 Référence classes / fonctions
ResultArrayByte () Les fonctions suivantes aident à définir le résultat exact du tableau d'octets :
Tableau de résultatsByte (std::vector const & résultat_)
Tableau de résultatsByte (std::string const & errorString_)
ResultArrayByte (NlcErrorCode const & errCode, std::string const & error String_)
ResultArrayByte (NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultArrayByte (const résultat et résultat)
8.28.5 ResultArrayInt
NanoLib vous envoie une instance de cette classe si la fonction renvoie un tableau d'entiers. La classe hérite des fonctions publiques / attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult() Lit le vecteur d'entiers si un appel de fonction a réussi.
const std::vecteur nlc::ResultArrayInt::getResult() const
Renvoie un vecteur constant
ResultArrayInt () Les fonctions suivantes aident à définir le résultat exact du tableau d'entiers :
ResultArrayInt (std::vector const & résultat_)
ResultArrayInt (std::string const & errorString_)
ResultArrayInt (NlcErrorCode const & errCode, std::string const & error String_)
ResultArrayInt (NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultArrayInt (const résultat et résultat)
8.28.6 ResultBusHwIds
NanoLib vous envoie une instance de cette classe si la fonction renvoie un tableau d'ID de matériel de bus. La classe hérite des fonctions publiques / attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult() Lit le vecteur bus-hardware-ID si un appel de fonction a réussi.
const std::vecteur nlc::ResultBusHwIds::getResult() const
Paramètres vecteur const
Version : doc 1.4.2 / NanoLib 1.3.0
47
8 Référence classes / fonctions
ResultBusHwIds () Les fonctions suivantes aident à définir le résultat exact du tableau d'ID matériel de bus :
RésultatBusHwIds (std::vector const & résultat_)
RésultatBusHwIds (std::string const & errorString_)
RésultatBusHwIds (NlcErrorCode const & errCode, std::string const & errorString_)
ResultBusHwIds (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultBusHwIds (const résultat et résultat)
8.28.7 ResultDeviceId
NanoLib vous envoie une instance de cette classe si la fonction renvoie un identifiant de périphérique. La classe hérite des fonctions publiques / attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult () Lit le vecteur d'ID de périphérique si un appel de fonction a réussi.
DeviceId nlc::ResultDeviceId::getResult() const
Renvoie le vecteur const
ResultDeviceId () Les fonctions suivantes aident à définir le résultat exact de l'ID de périphérique :
ResultDeviceId (DeviceId const & result_)
ResultDeviceId (std::string const & errorString_)
ResultDeviceId (NlcErrorCode const & errCode, std::string const & errorString_)
ResultDeviceId (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string errorString_)
ResultDeviceId (const résultat et résultat)
8.28.8 ID de périphérique de résultat
NanoLib vous envoie une instance de cette classe si la fonction renvoie un tableau d'ID de périphérique. La classe hérite des fonctions publiques / attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult() Renvoie le vecteur d'ID de périphérique si un appel de fonction a réussi.
DeviceId nlc::ResultDeviceIds::getResult() const
Renvoie le vecteur const
Version : doc 1.4.2 / NanoLib 1.3.0
48
8 Référence classes / fonctions
ResultDeviceIds () Les fonctions suivantes aident à définir le résultat exact du tableau d'ID de périphérique :
ResultDeviceIds (std::vector const & résultat_)
ResultDeviceIds (std::string const & errorString_)
ResultDeviceIds (NlcErrorCode const & errCode, std::string const & errorString_)
ResultDeviceIds (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultDeviceIds (const résultat et résultat)
8.28.9 ResultDeviceHandle
NanoLib vous envoie une instance de cette classe si la fonction renvoie la valeur d'un handle de périphérique. La classe hérite des fonctions publiques / attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult () Lit le handle du périphérique si un appel de fonction a réussi.
DeviceHandle nlc::ResultDeviceHandle::getResult() const
Renvoie DeviceHandle
ResultDeviceHandle () Les fonctions suivantes aident à définir le résultat exact du handle de périphérique :
ResultDeviceHandle (const DeviceHandle & result_)
ResultDeviceHandle (std::string const & errorString_)
ResultDeviceHandle (NlcErrorCode const & errCode, std::string const & errorString_)
ResultDeviceHandle (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultDeviceHandle (const résultat et résultat)
8.28.10 DictionnaireObjetRésultat
NanoLib vous envoie une instance de cette classe si la fonction renvoie le contenu d'un dictionnaire d'objets. La classe hérite des fonctions publiques/attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult () Lit le vecteur d'ID de périphérique si un appel de fonction a réussi.
const nlc::ObjectDictionary & nlc::ResultObjectDictionary::getResult()
Version : doc 1.4.2 / NanoLib 1.3.0
49
8 Référence classes / fonctions
Retours
vecteur constant
ResultObjectDictionary () Les fonctions suivantes aident à définir le résultat exact du dictionnaire d'objets :
ResultObjectDictionary (const nlc::ObjectDictionary et result_)
Dictionnaire d'objets de résultat (std::string const & errorString_)
ResultObjectDictionary (NlcErrorCode const & errCode, std::string const & errorString_)
ResultObjectDictionary (const NlcErrorCode et errCode, const uint32_t exErrCode, std::string const et errorString_)
ResultObjectDictionary (const de résultat et résultat)
8.28.11 État de connexion du résultat
NanoLib vous envoie une instance de cette classe si la fonction renvoie des informations sur l'état de connexion du périphérique. La classe hérite des fonctions publiques/attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult () Lit le handle du périphérique si un appel de fonction a réussi.
DeviceConnectionStateInfo nlc::ResultConnectionState::getResult() const
Renvoie DeviceConnectionStateInfo Connecté / Déconnecté / ConnectedBootloader
ResultConnectionState () Les fonctions suivantes aident à définir le résultat exact de l'état de connexion :
ResultConnectionState (DeviceConnectionStateInfo const & result_)
RésultatConnectionState (std::string const & errorString_)
ResultConnectionState (NlcErrorCode const & errCode, std::string const & errorString_)
ResultConnectionState (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultConnectionState (const résultat et résultat)
8.28.12 EntréeObjetRésultat
NanoLib vous envoie une instance de cette classe si la fonction renvoie une entrée d'objet. La classe hérite des fonctions publiques / attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
Version : doc 1.4.2 / NanoLib 1.3.0
50
8 Référence classes / fonctions
getResult() Renvoie le vecteur d'ID de périphérique si un appel de fonction a réussi.
nlc::ObjectEntry const& nlc::ResultObjectEntry::getResult() const
Renvoie const ObjectEntry
ResultObjectEntry () Les fonctions suivantes aident à définir le résultat exact de la saisie d'un objet :
ResultObjectEntry (nlc::ObjectEntry const & result_)
ResultObjectEntry (std::string const & errorString_)
ResultObjectEntry (NlcErrorCode const & errCode, std::string const & errorString_)
ResultObjectEntry (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultObjectEntry (const résultat et résultat)
8.28.13 ResultObjectSubEntry
NanoLib vous envoie une instance de cette classe si la fonction renvoie une sous-entrée d'objet. La classe hérite des fonctions publiques / attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult() Renvoie le vecteur d'ID de périphérique si un appel de fonction a réussi.
nlc::ObjectSubEntry const & nlc::ResultObjectSubEntry::getResult() const
Renvoie const ObjectSubEntry
ResultObjectSubEntry () Les fonctions suivantes aident à définir le résultat exact de la sous-entrée d'objet :
ResultObjectSubEntry (nlc::ObjectEntry const & result_)
ResultObjectSubEntry (std::string const & errorString_)
ResultObjectSubEntry (NlcErrorCode const & errCode, std::string const & errorString_)
ResultObjectSubEntry (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultObjectSubEntry (const résultat et résultat)
8.28.14 RésultatProfinetDevices
NanoLib vous envoie une instance de cette classe si la fonction renvoie un périphérique Profinet. La classe hérite des fonctions publiques/attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
Version : doc 1.4.2 / NanoLib 1.3.0
51
8 Référence classes / fonctions
getResult () Lit le vecteur de périphérique Profinet si un appel de fonction a réussi.
const std::vecteur & getResult() const
ResultProfinetDevices () Les fonctions suivantes aident à définir les appareils Profinet exacts.
RésultatProfinetDevices (const std::vector & profinetDevices)
RésultatProfinetDevices (const Result & result)
RésultatProfinetDevices (const std::string &errorText, NlcErrorCode errorCode = NlcErrorCode::GeneralError, uint32_t extendedErrorCode = 0)
8.28.15 RÉSULTATSampleDataArray
NanoLib vous envoie une instance de cette classe si la fonction renvoie commeample tableau de données. La classe hérite des fonctions publiques/attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult () Lit le tableau de données si un appel de fonction a réussi.
const std::vector <SampleData> & getResult() const
RésultatsampleDataArray () Les fonctions suivantes aident à définir les périphériques Profinet exacts.
RésultatsampleDataArray (const std::vector <SampleData> & dataArray)
RésultatsampleDataArray (const std::string &errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t extendedErrorCode = 0)
RésultatsampleDataArray (const ResultSampleDataArray et autres)
RésultatsampleDataArray (const Résultat & résultat)
8.28.16 RÉSULTATSamplerState
NanoLib vous envoie une instance de cette classe si la fonction renvoie commeampler state.Cette classe hérite des fonctions publiques/attributs protégés de la classe de résultat et possède les fonctions membres publiques suivantes :
getResult () Lit le sampvecteur d'état ler si un appel de fonction a réussi.
SamplerState getResult() const
Renvoie SamplerState>
Non configuré/Configuré/Prêt/En cours d'exécution/Terminé/Échec/Annulé
Version : doc 1.4.2 / NanoLib 1.3.0
52
8 Référence classes / fonctions
RésultatsamplerState () Les fonctions suivantes aident à définir le s exactampétat ler.
RésultatsamplerState (const Sampétat lerState)
RésultatsamplerState (const std::string & errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t
code d'erreur étendu = 0)
RésultatsamplerState (const RésultatSamplerState et autre)
RésultatsamplerState (const Résultat & résultat)
8.29 Code d'erreur Nlc
Si quelque chose ne va pas, les classes de résultats signalent l'un des codes d'erreur répertoriés dans cette énumération.
Code d'erreur Succès Erreur générale Bus indisponible Erreur de communication Erreur de protocole
ODDoesNotExist ODInvalidAccess ODTypeMismatch Opération abandonnée Opération non prise en charge Opération non valide
InvalidArguments AccessDenied ResourceNotFound ResourceUnavailable OutOfMemory TimeOutError
C : Catégorie D : Description R : Raison C : Aucune. D : Aucune erreur. R : L’opération s’est terminée avec succès.
C : Non précisé. D : erreur non spécifiée. R : Un échec qui ne rentre dans aucune autre catégorie.
C : Autobus. D : Bus matériel non disponible. R : Bus inexistant, coupure ou défaut.
C :Communication. D : Communication peu fiable. R : Données inattendues, CRC erroné, erreurs de trame ou de parité, etc.
C : Protocole. D : erreur de protocole. R : Réponse après une option de protocole non prise en charge, le périphérique signale un protocole non pris en charge, une erreur dans le protocole (par exemple, bit de synchronisation de segment SDO), etc. R : Une réponse ou un rapport de périphérique à un protocole non pris en charge (options) ou à des erreurs de protocole (par exemple, SDO bit de synchronisation de segment), etc. R : protocole non pris en charge (options) ou erreur de protocole (par exemple, bit de synchronisation de segment SDO), etc.
C : Dictionnaire d'objets. D : Adresse OD inexistante. R : Aucune adresse de ce type dans le dictionnaire d'objets.
C : Dictionnaire d'objets. D : Accès à l’adresse OD invalide. R : tentative d'écriture d'une adresse en lecture seule ou de lecture à partir d'une adresse en écriture seule.
C : Dictionnaire d'objets. D : Incompatibilité de type. R : valeur non convertie en type spécifié, par exemple, dans le but de traiter une chaîne comme un nombre.
C : Demande. D : Processus interrompu. R : Processus coupé par demande de candidature. Renvoie uniquement en cas d'interruption d'opération par une fonction de rappel, par exemple depuis l'analyse du bus.
C : Commun. D : processus non pris en charge. R : Pas de prise en charge du bus matériel/périphérique.
C : Commun. D : processus incorrect dans le contexte actuel ou invalide avec l'argument actuel. R : Une tentative de reconnexion aux bus/appareils déjà connectés. Une tentative de déconnexion de ceux déjà déconnectés. Une tentative d’opération du chargeur de démarrage en mode firmware ou vice versa.
C : Commun. D : Argument invalide. R : Mauvaise logique ou syntaxe.
C : Commun. D : L'accès est refusé. R : Manque de droits ou de capacités pour effectuer l’opération demandée.
C : Commun. D : élément spécifié introuvable. R : bus matériel, protocole, appareil, adresse OD sur l'appareil ou file n'a pas été trouvé.
C : Commun. D : élément spécifié introuvable. R : occupé, inexistant, coupé ou défectueux.
C : Commun. D : Mémoire insuffisante. R : Trop peu de mémoire pour traiter cette commande.
C : Commun. D : Le processus a expiré. R : Retour après expiration du délai d'attente. Le délai d'attente peut être un temps de réponse de l'appareil, un temps nécessaire pour obtenir un accès aux ressources partagées ou exclusives, ou un temps nécessaire pour faire basculer le bus/l'appareil dans un état approprié.
Version : doc 1.4.2 / NanoLib 1.3.0
53
8 Référence classes / fonctions
8.30 Rappel Nlc
Cette classe parent pour les rappels a la fonction membre publique suivante : callback()
callback virtuel ResultVoid ()
Retours
RésultatVide
8.31 NlcDataTransferCallback
Utilisez cette classe de rappel pour les transferts de données (mise à jour du firmware, téléchargement de NanoJ, etc.). 1. Pour un téléchargement de firmware : définissez une « co-classe » étendant celle-ci avec une méthode de rappel personnalisée
implémentation. 2. Utilisez les instances de la « co-classe » dans les appels NanoLibAccessor.uploadFirmware(). La classe principale elle-même possède la fonction membre publique suivante :
callback() virtuel ResultVoid callback (nlc::DataTransferInfo info, int32_t données)
Retours
RésultatVide
8.32 Rappel NlcScanBus
Utilisez cette classe de rappel pour l'analyse de bus. 1. Définissez une « co-classe » étendant celle-ci avec une implémentation de méthode de rappel personnalisée. 2. Utilisez les instances de la « co-classe » dans les appels NanoLibAccessor.scanDevices(). La classe principale elle-même possède la fonction membre publique suivante.
rappeler ()
rappel virtuel ResultVoid (nlc::BusScanInfo info, std::vector const & devicesFound, données int32_t)
Renvoie RésultatVoid
8.33 NlcLoggingCallback
Utilisez cette classe de rappel pour enregistrer les rappels. 1. Définir une classe qui étend cette classe avec une implémentation de méthode de rappel personnalisée 2. Utiliser un pointeur vers ses instances afin de définir un rappel par NanoLibAccessor >
setLoggingCallback (…).
rappel virtuel void (const std::string & payload_str, const std::string & formatted_str, const std::string & logger_name, const unsigned int log_level, const std::uint64_t time_since_epoch, const size_t thread_id)
8.34 SamplerInterface
Utilisez cette classe pour configurer, démarrer et arrêter le sampler, ou pour obtenir sampconduit les données et les récupère commeampl'état du lecteur ou la dernière erreur. La classe a les fonctions de membre public suivantes.
Version : doc 1.4.2 / NanoLib 1.3.0
54
8 Référence classes / fonctions
configure () Configure commeamplire.
Résultat virtuelVoid nlc::SamplerInterface::configure (const DeviceHandle deviceHandle, const SampConfiguration et samplerConfiguration)
Paramètres [in] deviceHandle [in] samplerConfiguration
Renvoie RésultatVoid
Spécifie quel périphérique configurer le sampler pour. Spécifie les valeurs des attributs de configuration. Confirme qu'une fonction void a été exécutée.
getData () Obtient le sampdonnées dirigées.
Résultats virtuelsampleDataArray nlc::SamplerInterface::getData (const DeviceHandle deviceHandle)
Paramètres [in] deviceHandle renvoie ResultSampleDataArray
Spécifie le périphérique pour lequel obtenir les données.
Fournit le sampdonnées led, qui peuvent être un tableau vide si samplerNotify est actif au démarrage.
getLastError () Obtient commeampla dernière erreur de ler.
Résultat virtuelVoid nlc::SamplerInterface::getLastError (const DeviceHandle deviceHandle)
Renvoie RésultatVoid
Confirme qu'une fonction void a été exécutée.
getState () Obtient commeampstatut du ler.
Résultats virtuelsamplerState nlc::SamplerInterface::getState (const DeviceHandle deviceHandle)
Renvoie les résultatsamplerState
Fournit le sampétat ler.
start () Commence commeamplire.
Résultat virtuelVoid nlc::SamplerInterface::start (const DeviceHandle deviceHandle, SamplerNotify* samplerNotify, int64_t applicationData)
Paramètres [in] deviceHandle [in] SamplerNotify [dans] applicationData
Renvoie RésultatVoid
Spécifie quel périphérique pour démarrer le sampler pour.
Spécifie les informations facultatives à signaler (peut être nullptr).
Option : transmet les données liées à l'application (un tableau de 8 bits défini par l'utilisateur contenant une valeur/un ID de périphérique/un index, ou une date/heure, un pointeur de variable/de fonction, etc.) vers samplerNotify.
Confirme qu'une fonction void a été exécutée.
Version : doc 1.4.2 / NanoLib 1.3.0
55
8 Référence classes / fonctions
stop () S'arrête commeamplire.
Résultat virtuelVoid nlc::SamplerInterface::stop (const DeviceHandle deviceHandle)
Paramètres [in] deviceHandle renvoie ResultVoid
Spécifie quel périphérique arrêter le sampler pour. Confirme qu'une fonction void a été exécutée.
8.35 Sampstructure lerConfiguration
Cette structure contient les données sampoptions de configuration du gestionnaire (statique ou non).
Attributs publics
std :: vecteur Adresses suivies
Jusqu'à 12 adresses OD à sampLED.
uint32_t
version
La version d'une structure.
uint32_t
duréeMillisecondes
Sampdurée de ling en ms, de 1 à 65535
uint16_t
périodeMillisecondes
Samppériode de ling en ms.
uint16_t
nombreDeSamples
Sample montant.
uint16_t
preTriggerNumberOfSamples
Sample montant de pré-déclenchement.
booléen
Utilisation du logiciel Mise en œuvre
Utiliser la mise en œuvre de logiciels.
booléen
en utilisantNewFWSamplerImplementation Utiliser l'implémentation FW pour les appareils dotés d'un
Version du micrologiciel v24xx ou plus récente.
SamplerMode
mode
S normales, répétitives ou continuesamplingue.
SamplerTriggerCondition triggerCondition
Conditions de déclenchement de démarrage : TC_FALSE = 0x00 TC_TRUE = 0x01 TC_SET = 0x10 TC_CLEAR = 0x11 TC_RISING_EDGE = 0x12 TC_FALLING_EDGE = 0x13 TC_BIT_TOGGLE = 0x14 TC_GREATER = 0x15 TC_GREATER_OR_EQUAL = 0x16 TC_LESS = 0x17 TC_LESS_OR_EQUAL = 0x18 TC_EQUAL = 0x19 TC_NOT_EQUAL = 0x1A TC_ONE_EDGE = 0x1B TC_MULTI_EDGE = 0x1C, OdIndex, valeur de déclenchement
SamplerTrigger
SamplerTrigger
Un déclencheur pour démarrer commeampler?
Attributs publics statiques
constexpr statique size_t SAMPLER_CONFIGURATION_VERSION = 0x01000000 constexpr statique size_t MAX_TRACKED_ADDRESSES = 12
8.36 SamplerNotifier
Utilisez cette classe pour activer sampler notifications lorsque vous démarrez en tant queampler. La classe a la fonction membre publique suivante.
Version : doc 1.4.2 / NanoLib 1.3.0
56
8 Référence classes / fonctions
notifier ()
Fournit une entrée de notification.
vide virtuel nlc::SamplerNotify::notify (const ResultVoid & lastError, const SamplerState samplerState, const std::vector <SampleData> & sampleDatas, int64_t applicationData)
Paramètres [in] lastError [in] samplerState
[en] sampleDatas [dans] applicationData
Signale la dernière erreur survenue pendant samplingue. Rapporte le sampler l'état au moment de la notification : Non configuré / Configuré / Prêt / En cours d'exécution / Terminé / Échec / Annulé. Rapporte le samptableau de données LED. Rapporte les données spécifiques à l’application.
8.37 Sampstructure leData
Cette structure contient le sampdonnées dirigées.
uin64_t numéro d'itération
Commence à 0 et n'augmente qu'en mode répétitif.
std :: vecteur <SampledValues> Contient le tableau de sampvaleurs dirigées.
8.38 Sampstructure ledValue
Cette structure contient le sampvaleurs dirigées.
valeur in64_t uin64_t CollectTimeMsec
Contient la valeur d’une adresse OD suivie.
Contient le temps de collecte en millisecondes, par rapport au sample début.
8.39 SampStructure lerTrigger
Cette structure contient les paramètres de déclenchement du samplire.
SamplerTriggerConditioncondition
Valeur OdIndex uin32_t
La condition de déclenchement :TC_FALSE = 0x00 TC_TRUE = 0x01 TC_SET = 0x10 TC_CLEAR = 0x11 TC_RISING_EDGE = 0x12 TC_FALLING_EDGE = 0x13 TC_BIT_TOGGLE = 0x14 TC_GREATER = 0x15 TC_GREATER_OR_EQUAL = 0x16 TC_LESS = 0x17 TC_LESS_OR_EQUAL = 0x18 TC_EQUAL = 0x19 TC_NOT_EQUAL = 0x1A TC_ONE_EDGE = 0x1B TC_MULTI_EDGE = 0x1C
L'OdIndex (adresse) du déclencheur.
Valeur de condition ou numéro de bit (à partir du bit zéro).
8.40 Structure série
Retrouvez ici vos options de communication série et les attributs publics suivants :
const std::string const Débit en bauds série
BAUD_RATE_OPTIONS_NAME = « débit en bauds série » baudRate = structure SerialBaudRate
Version : doc 1.4.2 / NanoLib 1.3.0
57
8 Référence classes / fonctions
const std::string const SerialParity
PARITY_OPTIONS_NAME = « parité série » parity = structure SerialParity
8.41 Structure SerialBaudRate
Trouvez ici votre débit en bauds de communication série et les attributs publics suivants :
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
BAUD_RATE_7200 = « 7200 » BAUD_RATE_9600 = « 9600 » BAUD_RATE_14400 = « 14400 » BAUD_RATE_19200 = « 19200 » BAUD_RATE_38400 = « 38400 » BAUD_RATE_56000 = « 56000 » BAUD_RATE_57600 = « 57600 » AUD_RATE_115200 = "115200" BAUD_RATE_128000 = "128000" BAUD_RATE_256000 = "256000"
8.42 Structure SerialParity
Retrouvez ici vos options de parité série et les attributs publics suivants :
const std::string const std::string const std::string const std::string
AUCUN = « aucun » ODD = « impair » PAIRE = « pair » MARK = « marque » ESPACE = « espace »
Version : doc 1.4.2 / NanoLib 1.3.0
58
Licences 9
Licences 9
En-têtes et ex de l'interface API NanoLibampLe code source est sous licence de Nanotec Electronic GmbH & Co. KG sous la licence Creative Commons Attribution 3.0 Unported (CC BY). Les parties de la bibliothèque fournies au format binaire (bibliothèques de communication principales et de bus de terrain) sont sous licence Creative Commons AttributionNoDerivatives 4.0 International License (CC BY ND).
Licence Creative Commons
Le résumé lisible suivant ne remplacera pas la ou les licences elles-mêmes. Vous pouvez trouver la licence respective sur creativecommons.org et le lien ci-dessous. Vous êtes libre de :
CC BY 3.0
Partager : Voir à droite. Adaptez-vous : remixez, transformez et construisez à partir du
matériel à quelque fin que ce soit, même commercialement.
CC BY-ND 4.0
Partager : copiez et redistribuez le matériel sur n’importe quel support ou format.
Le concédant de licence ne peut pas révoquer les libertés ci-dessus tant que vous respectez les conditions de licence suivantes :
CC BY 3.0
CC BY-ND 4.0
Attribution : Vous devez attribuer le crédit approprié. Attribution : Voir à gauche. Mais : fournissez un lien vers ceci
fournir un lien vers la licence et indiquer si
autre licence.
des changements ont été apportés. Vous pouvez le faire dans n'importe quel
Pas de dérivés : si vous remixez, transformez ou construisez
manière raisonnable, mais pas d'une manière qui suggère
sur le matériel, vous ne pouvez pas distribuer le
si le concédant de licence vous approuve ou approuve votre utilisation.
matériau modifié.
Aucune restriction supplémentaire : Vous ne pouvez pas postuler. Aucune restriction supplémentaire : Voir à gauche. termes juridiques ou mesures technologiques qui légalement
empêcher les autres de faire quoi que ce soit avec la licence
permis.
Remarque : Vous n'êtes pas tenu de respecter la licence pour les éléments du matériel appartenant au domaine public ou lorsque votre utilisation est autorisée par une exception ou une limitation applicable.
Remarque : Aucune garantie donnée. La licence peut ne pas vous donner toutes les autorisations nécessaires à l'utilisation que vous envisagez. Par exempleample, d'autres droits tels que la publicité, la confidentialité ou les droits moraux peuvent limiter la façon dont vous utilisez le matériel.
Version : doc 1.4.2 / NanoLib 1.3.0
59
Mentions légales, contact, versions
©2024 Nanotec Electronic GmbH & Co.KGKapellenstr.685622 FeldkirchenAllemagneTél.+49(0) 89 900 686-0Fax+49(0)89 900 686-50 info@nanotec.dewww.nanotec.com Tous droits réservés. Des erreurs, omissions, modifications techniques ou de contenu sont possibles sans préavis. Les marques/produits cités sont des marques déposées de leurs propriétaires et doivent être traités comme tels. Version originale.
Documents 1.4.2 2024.12 1.4.1 2024.10 1.4.0 2024.09 1.3.3 2024.07
1.3.2 2024.05 1.3.1 2024.04 1.3.0 2024.02
1.2.2 2022.09 1.2.1 2022.08 1.2.0 2022.08
+ Ajouté > Modifié # Corrigé > Refonte de l'ex fourniamples.
+ NanoLib Modbus : ajout d'un mécanisme de verrouillage de périphérique pour Modbus VCP. # NanoLib Core : correction de la vérification de l'état de connexion. # NanoLib Code : suppression de la référence matérielle du bus corrigée.
+ NanoLib-CANopen : prise en charge de l'adaptateur Peak PCAN-USB (IPEH-002021/002022).
> NanoLib Core : interface de rappel de journalisation modifiée (LogLevel remplacé par LogModule). # NanoLib Logger : la séparation entre le cœur et les modules a été corrigée. # Modbus TCP : mise à jour du firmware corrigée pour FW4. # EtherCAT : téléchargement du programme NanoJ corrigé pour Core5. # EtherCAT : mise à jour du firmware corrigée pour Core5.
# Modbus RTU : Correction de problèmes de synchronisation avec de faibles débits en bauds lors de la mise à jour du firmware. # RESTful : Correction du téléchargement du programme NanoJ.
# Modules NanoLib Sampler : Lecture correcte de sampconduit des valeurs booléennes.
+ Prise en charge de Java 11 pour toutes les plateformes. + Prise en charge de Python 3.11/3.12 pour toutes les plateformes. + Nouvelle interface de rappel de journalisation (voir examples). + Récepteurs de rappel pour NanoLib Logger. > Mettre à jour l'enregistreur vers la version 1.12.0. > Modules NanoLib Sampler : Prise en charge désormais du micrologiciel du contrôleur Nanotec v24xx. > Modules NanoLib Sampler : changement de structure utilisé pour les sampconfiguration du pilote. > Modules NanoLib Sampler : Le mode continu est synonyme de mode sans fin ; la condition de déclenchement est vérifiée une fois ; le nombre de samples doivent être 0. > Modules NanoLib Sampler : Priorité normale pour le thread qui collecte les données en mode firmware. > Modules NanoLib Sampler : algorithme réécrit pour détecter la transition entre l'état Prêt et En cours d'exécution. # NanoLib Core : Plus de violation d'accès (0xC0000005) lors de la fermeture de 2 appareils ou plus utilisant le même matériel de bus. # NanoLib Core : Plus de défaut de segmentation lors de la connexion d'un adaptateur PEAK sous Linux. # Modules NanoLib Samplire : Corriger les sampLecture des valeurs LED en mode firmware. # Modules NanoLib Sampler : Configuration correcte de 502X:04. # Modules NanoLib Sampler : Mélange correct des tampons avec les canaux. # NanoLib-Canopen : Augmentation des délais d'attente CAN pour plus de robustesse et une analyse correcte à des débits en bauds inférieurs. # NanoLib-Modbus : Algorithme de détection VCP pour appareils spéciaux (USB-DA-IO).
+ Prise en charge EtherCAT.
+ Remarque sur les paramètres du projet VS dans Configurer votre projet.
+ getDeviceHardwareGroup(). + getProfinetDCP(isServiceAvailable). + getProfinetDCP(validateProfinetDeviceIp). + autoAssignObjectDictionary(). + getXmlFileNom (). + const std::string & xmlFileChemin dans addObjectDictionary(). + getSamplerInterface().
Produit 1.3.0 1.2.1 1.2.0 1.1.3
1.1.2 1.1.1 1.1.0
1.0.1 (B349) 1.0.0 (B344) 1.0.0 (B341)
Version : doc 1.4.2 / NanoLib 1.3.0
60
10 Mentions légales, contact, versions
Document
1.1.2 2022.03 1.1.1 2021.11 1.1.0 2021.06 1.0.1 2021.06 1.0.0 2021.05
+ Ajouté > Modifié # Corrigé + rebootDevice(). + Code d'erreur ResourceUnavailable pour getDeviceBootloaderVersion(), ~VendorId(), ~HardwareVersion(), ~SerialNumber et ~Uid. > firmwareUploadFromFile maintenant téléchargerFirmwareDeFile (). > firmwareUpload () maintenant uploadFirmware (). > bootloaderUploadFromFile () maintenant téléchargerBootloaderFromFile (). > bootloaderUpload () maintenant uploadBootloader (). > bootloaderFirmwareUploadFromFile () pour téléchargerBootloaderFirmwareFromFile (). > bootloaderFirmwareUpload () maintenant uploadBootloaderFirmware (). > nanojUploadFromFile () maintenant téléchargerNanoJFromFile (). > nanojUpload () maintenant uploadNanoJ (). > objectDictionaryLibrary () maintenant getObjectDictionaryLibrary (). > String_String_Map maintenant StringStringMap. > NanoLib-Common : exécution plus rapide de listAvailableBusHardware et openBusHardwareWithProtocol avec l'adaptateur Ixxat. > NanoLib-CANopen : paramètres par défaut utilisés (débit en bauds 1000k, numéro de bus Ixxat 0) si les options matérielles du bus sont vides. > NanoLib-RESTful : autorisation d'administrateur obsolète pour la communication avec les chargeurs de démarrage Ethernet sous Windows si le pilote npcap / winpcap est disponible. # NanoLib-CANopen : le matériel du bus s'ouvre désormais sans crash avec des options vides. # NanoLib-Common : openBusHardwareWithProtocol () sans fuite de mémoire désormais.
+ Prise en charge Linux ARM64. + Prise en charge du stockage de masse USB / REST / Profinet DCP. + checkConnectionState(). + getDeviceBootloaderVersion(). + ResultProfinetDevices. + NlcErrorCode (a remplacé NanotecExceptions). + NanoLib Modbus : hub VCP / USB unifié vers USB. > L'analyse Modbus TCP renvoie des résultats. < La latence de communication Modbus TCP reste constante.
+ Plus d'ObjectEntryDataType (complexe et profile-spécifique). + IOError renvoie si connectDevice() et scanDevices() n'en trouvent aucun. + Délai d'expiration nominal de seulement 100 ms pour CanOpen / Modbus.
+ Prise en charge Modbus (plus Hub USB via VCP). + Chapitre Créer votre propre projet Linux. + extraHardwareSpecifier à BusHardwareId(). + extraId_ et extraStringId_ à DeviceId().
+ setBusState (). + getDeviceBootloaderBuildId (). + getDeviceFirmwareBuildId (). + getDeviceHardwareVersion (). # Corrections de bugs.
Édition.
Produit
0.8.0 0.7.1 0.7.0 0.5.1 0.5.1
Version : doc 1.4.2 / NanoLib 1.3.0
61
Documents / Ressources
![]() |
Programmation Nanotic NanoLib C++ [pdf] Manuel de l'utilisateur Programmation en C NanoLib, Programmation en C, Programmation |

