Logo Nanotico

Programmazione C++ Nanotic NanoLib

Nanotic-NanoLib-C++-Programmazione-PRODOTTO

Informazioni sul prodotto

Specifiche

  • Nome del prodotto: NanoLib
  • Programmazione Lingua: C++
  • Versione del prodotto: 1.3.0
  • Versione manuale utente: 1.4.2

La libreria NanoLib è progettata per programmare software di controllo per i controller Nanotec. Fornisce un'interfaccia utente, funzionalità di base e librerie di comunicazione per facilitare lo sviluppo di applicazioni di controllo.

Istruzioni per l'uso del prodotto

  • Prima di iniziare:
    • Assicurati che il tuo sistema soddisfi i requisiti hardware specificati nel manuale. Il pubblico previsto per questo prodotto include sviluppatori che desiderano creare software di controllo per i controller Nanotec.
  • Iniziare:
    • Per iniziare a utilizzare NanoLib, segui questi passaggi:
    • Inizia importando NanoLib nel tuo progetto.
    • Configura le impostazioni del progetto in base alle tue esigenze.
    • Crea il tuo progetto per incorporare le funzionalità di NanoLib.
  • Creazione di progetti:
    • Puoi creare progetti sia per gli ambienti Windows che Linux. Segui le istruzioni specifiche fornite nel manuale per ogni piattaforma.
  • Riferimento classi/funzioni:
    • Per una guida dettagliata sulle classi e le funzioni disponibili in NanoLib per la programmazione del software di controllo, fare riferimento al manuale utente.

Domande frequenti

  • D: Qual è lo scopo di NanoLib?
    • A: NanoLib è una libreria per la programmazione di software di controllo per i controller Nanotec, che fornisce funzionalità essenziali e capacità di comunicazione.
  • D: Come posso iniziare a usare NanoLib?
    • A: Inizia importando NanoLib nel tuo progetto, configurando le impostazioni del progetto e creando il tuo progetto per utilizzare le funzionalità di NanoLib.

“`

Manuale utente NanoLib
Tipo di carattere

Valido con la versione del prodotto 1.3.0

Versione manuale utente: 1.4.2

Scopo e convenzioni del documento

Questo documento descrive la configurazione e l'uso della libreria NanoLib e contiene un riferimento a tutte le classi e funzioni per programmare il proprio software di controllo per i controller Nanotec. Utilizziamo i seguenti caratteri tipografici:
Il testo sottolineato contrassegna un riferimento incrociato o un collegamento ipertestuale.
Example 1: Per istruzioni esatte su NanoLibAccessor, vedere Setup. Example 2: Installare il driver Ixxat e collegare l'adattatore CAN-to-USB. Il testo in corsivo significa: questo è un oggetto con nome, un percorso/voce di menu, una scheda/ file nome o (se necessario) un'espressione in lingua straniera.
Example 1: Seleziona File > Nuovo > Documento vuoto. Apri la scheda Strumenti e seleziona Commento. Example 2: Questo documento divide gli utenti (= Nutzer; usuario; utente; utilisateur; utente ecc.) da:
– Utente terzo (= Drittnutzer; tercero usuario; terceiro utente; tiers utilisateur; terzo utente ecc.). – Utente finale (= Endnutzer; usuario final; utente final; utilisateur final; utente finale ecc.).
Courier contrassegna blocchi di codice o comandi di programmazione. Example 1: tramite Bash, chiama sudo make install per copiare oggetti condivisi; quindi chiama ldconfig. Example 2: utilizzare la seguente funzione NanoLibAccessor per modificare il livello di registrazione in NanoLib:
// ***** variante C++ *****
void setLoggingLevel(livello LogLevel);
Il testo in grassetto enfatizza le singole parole di fondamentale importanza. In alternativa, i punti esclamativi tra parentesi sottolineano l'importanza critica(!).
Example 1: Proteggi te stesso, gli altri e la tua attrezzatura. Seguire le nostre note generali sulla sicurezza che sono generalmente applicabili a tutti i prodotti Nanotec.
Example 2: Per la vostra protezione, seguite anche le note di sicurezza specifiche che si applicano a questo prodotto specifico. Il verbo co-clic indica un clic tramite il tasto secondario del mouse per aprire un menu contestuale, ecc.
Example 1: fare clic insieme su file, seleziona Rinomina e rinomina il file file. Example 2: Per verificare le proprietà, fare co-clic su file e selezionare Proprietà.

Versione: doc 1.4.2 / NanoLib 1.3.0

4

Prima di iniziare

Prima di iniziare a utilizzare NanoLib, prepara il tuo PC e informati sull'uso previsto e sulle limitazioni della libreria.
2.1 Requisiti di sistema e hardware

Nanotic-NanoLib-C++-Programmazione-FIG- (1)
AVVISO Malfunzionamento dovuto a funzionamento a 32 bit o sistema fuori produzione! Utilizzare e mantenere costantemente un sistema a 64 bit. Osservare le interruzioni OEM e le ~istruzioni.

NanoLib 1.3.0 supporta tutti i prodotti Nanotec con CANopen, Modbus RTU (anche USB su porta com virtuale), Modbus TCP, EtherCat e Profinet. Per le vecchie NanoLib: vedere il changelog nell'impronta. A vostro rischio e pericolo: uso di sistemi legacy. Nota: seguire le istruzioni OEM valide per impostare la latenza il più bassa possibile se si riscontrano problemi quando si utilizza un adattatore USB basato su FTDI.

Requisiti (sistema a 64 bit obbligatorio)
Windows 10 o 11 con Visual Studio 2019 versione 16.8 o successiva e Windows SDK 10.0.20348.0 (versione 2104) o successiva
C++ ridistribuibili 2017 o superiore CANopen: Ixxat VCI o driver di base PCAN (facoltativo) Modulo EtherCat / Profinet DCP: Npcap o WinPcap Modulo RESTful: Npcap, WinPcap o autorizzazione di amministratore per
comunicare con i bootloader Ethernet
Linux con Ubuntu 20.04 LTS a 24 (tutti x64 e arm64)
Intestazioni del kernel e pacchetto libpopt-dev Profinet DCP: abilitazione CAP_NET_ADMIN e CAP_NET_RAW
legami CANopen: driver Ixxat ECI o adattatore Peak PCAN-USB EtherCat: CAP_NET_ADMIN, CAP_NET_RAW e
CAP_SYS_NICE capacità RESTful: CAP_NET_ADMIN capacità di comunicare con Eth-
bootloader Ethernet (consigliato anche: CAP_NET_RAW)

Lingua, adattatori fieldbus, cavi
C++ GCC 7 o superiore (Linux)
EtherCAT: Cavo Ethernet Hub VCP / USB: ora USB uniforme Archiviazione di massa USB: Cavo USB REST: Cavo Ethernet CANopen: Ixxat USB-to-CAN V2; Na-
notec ZK-USB-CAN-1, adattatore Peak PCANUSB Nessun supporto Ixxat per Ubuntu su arm64
Modbus RTU: adattatore Nanotec ZK-USB-RS485-1 o equivalente; cavo USB su porta COM virtuale (VCP)
Modbus TCP: Cavo Ethernet come da scheda tecnica del prodotto

2.2 Destinazione d'uso e destinatari
NanoLib è una libreria di programmi e un componente software per il funzionamento e la comunicazione con i controller Nanotec in un'ampia gamma di applicazioni industriali e riservato a programmatori debitamente qualificati.
A causa dell'hardware (PC) e del sistema operativo non compatibili con il tempo reale, NanoLib non è adatto all'uso in applicazioni che necessitano di movimenti multiasse sincroni o sono generalmente sensibili al fattore tempo.
In nessun caso puoi integrare NanoLib come componente di sicurezza in un prodotto o sistema. Alla consegna agli utenti finali, devi aggiungere le corrispondenti avvertenze e istruzioni per un uso e un funzionamento sicuri a ciascun prodotto con un componente prodotto da Nanotec. Devi passare tutte le avvertenze emesse da Nanotec direttamente all'utente finale.
2.3 Entità della fornitura e garanzia
NanoLib si presenta come una cartella *.zip dal nostro download websito per EMEA/APAC o AMERICA. Archivia e decomprimi debitamente il download prima della configurazione. Il pacchetto NanoLib contiene:

Versione: doc 1.4.2 / NanoLib 1.3.0

5

2 Prima di iniziare

Intestazioni dell'interfaccia come codice sorgente (API)

Le funzioni principali sono librerie in formato binario: nano-

Librerie che facilitano la comunicazione: nanolibm_ lib.dll

[yourfieldbus].dll ecc.

Exampil progetto: Example.sln (Visual Studio

progetto) ed example.cpp (principale file)

Per quanto riguarda l'ambito della garanzia, si prega di osservare a) i nostri termini e condizioni per EMEA/APAC o AMERICA e b) tutti i termini di licenza. Nota: Nanotec non è responsabile per qualità, gestione, installazione, funzionamento, utilizzo e manutenzione difettosi o indebiti di apparecchiature di terze parti! Per la dovuta sicurezza, seguire sempre le istruzioni OEM valide.

Versione: doc 1.4.2 / NanoLib 1.3.0

6

L'architettura NanoLib

La struttura software modulare di NanoLib consente di organizzare funzioni di controllore motore/bus di campo liberamente personalizzabili attorno a un nucleo rigorosamente precostruito. NanoLib contiene i seguenti moduli:

Interfaccia utente (API)

Nucleo NanoLib

Classi di interfaccia e helper quali biblioteche quali

Librerie di comunicazione Librerie specifiche del bus di campo che

accedi all'implementazione della funzionalità API del tuo controller e all'interfaccia tra NanoLib

OD (dizionario oggetti)

interagire con le librerie bus.

hardware core e bus.

basato sulle funzioni principali di NanoLib

zionalità.

3.1 Interfaccia utente

L'interfaccia utente è costituita da un'interfaccia di intestazione files che puoi usare per accedere ai parametri del controller. Le classi dell'interfaccia utente come descritte nel riferimento Classi/funzioni ti consentono di:
Collegati sia all'hardware (adattatore fieldbus) sia al dispositivo controller. Accedi all'OD del dispositivo, per leggere/scrivere i parametri del controller.

3.2 Nucleo NanoLib

Il core NanoLib è dotato della libreria di importazione nanolib.lib. Implementa la funzionalità dell'interfaccia utente ed è responsabile di:
Caricamento e gestione delle librerie di comunicazione. Fornitura delle funzionalità dell'interfaccia utente in NanoLibAccessor. Questo punto di ingresso della comunicazione de-
definisce una serie di operazioni che è possibile eseguire sul core NanoLib e sulle librerie di comunicazione.

3.3 Biblioteche di comunicazione

Oltre a nanotec.services.nanolib.dll (utile per il vostro Plug & Drive Studio opzionale), NanoLib offre le seguenti librerie di comunicazione:

nanolibm_canopen.dll nanolibm_modbus.dll

nanolibm_ethercat.dll nanolibm_restful-api.dll

nanolibm_usbmmsc.dll nanolibm_profinet.dll

Tutte le librerie stabiliscono uno strato di astrazione hardware tra core e controller. Il core li carica all'avvio dalla cartella di progetto designata e li utilizza per stabilire la comunicazione con il controller tramite il protocollo corrispondente.

Versione: doc 1.4.2 / NanoLib 1.3.0

7

Iniziare

Leggi come configurare debitamente NanoLib per il tuo sistema operativo e come collegare l'hardware secondo necessità.
4.1 Prepara il tuo sistema
Prima di installare i driver dell'adattatore, prepara prima il tuo PC insieme al sistema operativo. Per preparare il PC insieme al tuo sistema operativo Windows, installa MS Visual Studio con estensioni C++. Per installare make e gcc tramite Linux Bash, chiama sudo apt install build-essentials. Quindi abilita le funzionalità CAP_NET_ADMIN, CAP_NET_RAW e CAP_SYS_NICE per l'applicazione che usa NanoLib: 1. Chiama sudo setcap 'cap_net_admin,cap_net_raw,cap_sys_nice+eip'
nome>. 2. Solo allora installa i driver dell'adattatore.
4.2 Installare il driver dell'adattatore Ixxat per Windows
Solo dopo aver installato il driver, puoi usare l'adattatore USB-to-CAN V2 di Ixxat. Leggi il manuale del prodotto delle unità USB per sapere se/come attivare la porta virtuale (VCP). 1. Scarica e installa il driver VCI 4 di Ixxat per Windows da www.ixxat.com. 2. Collegare l'adattatore compatto USB-CAN V2 di Ixxat al PC tramite USB. 3. Tramite Gestione dispositivi: verificare che sia il driver sia l'adattatore siano correttamente installati/riconosciuti.
4.3 Installare il driver dell'adattatore Peak per Windows
Solo dopo aver installato il driver, puoi usare l'adattatore PCAN-USB di Peak. Leggi il manuale del prodotto delle unità USB per sapere se/come attivare la porta virtuale (VCP). 1. Scarica e installa il setup del driver del dispositivo Windows (= pacchetto di installazione con driver del dispositivo, strumenti e
API) da http://www.peak-system.com. 2. Collegare l'adattatore PCAN-USB di Peak al PC tramite USB. 3. Tramite Gestione dispositivi: verificare che sia il driver sia l'adattatore siano correttamente installati/riconosciuti.
4.4 Installare il driver dell'adattatore Ixxat per Linux
Solo dopo aver installato il driver, puoi usare l'adattatore USB-to-CAN V2 di Ixxat. Nota: altri adattatori supportati necessitano dei tuoi permessi tramite sudo chmod +777/dev/ttyACM* (* numero dispositivo). Leggi il manuale del prodotto delle unità USB per sapere se/come attivare la porta virtuale (VCP). 1. Installa il software necessario per il driver ECI e l'applicazione demo:
sudo apt-get update apt-get install libusb-1.0-0-dev libusb-0.1-4 libc6 libstdc++6 libgcc1 buildessential
2. Scarica il driver ECI-for-Linux da www.ixxat.com. Decomprimilo tramite:
decomprimere eci_driver_linux_amd64.zip
3. Installare il driver tramite:
cd /EciLinux_amd/src/KernelModule sudo make install-usb
4. Verificare la corretta installazione del driver compilando e avviando l'applicazione demo:
cd /EciLinux_amd/src/EciDemos/ sudo make cd /EciLinux_amd/bin/release/ ./LinuxEciDemo

Versione: doc 1.4.2 / NanoLib 1.3.0

8

4 Per iniziare
4.5 Installare il driver dell'adattatore Peak per Linux
Solo dopo aver installato il driver, puoi usare l'adattatore PCAN-USB di Peak. Nota: altri adattatori supportati necessitano dei tuoi permessi tramite sudo chmod +777/dev/ttyACM* (* numero dispositivo). Leggi il manuale del prodotto delle unità USB per sapere se / come attivare la porta virtuale (VCP). 1. Controlla se il tuo Linux ha intestazioni del kernel: ls /usr/src/linux-headers-`uname -r`. In caso contrario, installa
loro: sudo apt-get install linux-headers-`uname -r` 2. Solo ora, installa il pacchetto libpopt-dev: sudo apt-get install libpopt-dev 3. Scarica il pacchetto driver necessario (peak-linux-driver-xxx.tar.gz) da www.peak-system.com. 4. Per decomprimerlo, usa: tar xzf peak-linux-driver-xxx.tar.gz 5. Nella cartella decompressa: compila e installa i driver, la libreria di base PCAN, ecc.: make all
sudo make install 6. Per verificare la funzione, collegare l'adattatore PCAN-USB.
a) Controllare il modulo kernel:
lsmod | grep pcan b) … e la libreria condivisa:
ls -l /usr/lib/libpcan*
Nota: se si verificano problemi con la porta USB3, utilizzare una porta USB2.
4.6 Collega il tuo hardware
Per poter eseguire un progetto NanoLib, collega un controller Nanotec compatibile al PC tramite l'adattatore. 1. Tramite un cavo adatto, collega l'adattatore al controller. 2. Collega l'adattatore al PC in base alla scheda tecnica dell'adattatore. 3. Accendi il controller tramite un alimentatore adatto. 4. Se necessario, modifica le impostazioni di comunicazione del controller Nanotec come indicato nel manuale del prodotto.
4.7 Carica NanoLib
Per iniziare con nozioni di base facili e veloci, puoi (ma non devi) utilizzare il nostro exampil progetto. 1. A seconda della tua regione: scarica NanoLib dal nostro websito per EMEA/APAC o AMERICA. 2. Decomprimere il pacchetto files / cartelle e seleziona un'opzione: Per nozioni di base semplici e veloci: vedi Avvio dell'example project. Per personalizzazioni avanzate in Windows: vedere Creare un progetto Windows. Per personalizzazioni avanzate in Linux: vedere Creare un progetto Linux.

Versione: doc 1.4.2 / NanoLib 1.3.0

9

Iniziare l'exampil progetto

Con NanoLib debitamente caricato, l'exampil progetto mostra l'utilizzo di NanoLib con un controller Nanotec. Nota: per ogni passaggio, i commenti nell'esampil codice spiega le funzioni utilizzate. L'exampil progetto è composto da: `*_functions_example.*' files, che contengono le implementazioni per le funzioni dell'interfaccia NanoLib `*_callback_example.*' files, che contengono implementazioni per i vari callback (scansione, dati e
registrazione) il `menu_*.*' file, che contiene la logica del menu e il codice Example.* file, che è il programma principale, che crea il menu e inizializza tutti i parametri utilizzati Sampler_example.* file, che contiene l'exampimplementazione per sampler utilizzo. Puoi trovare più examples, con alcuni comandi di movimento per varie modalità operative, nella Knowledge Base su nanotec.com. Sono tutti utilizzabili in Windows o Linux.
In Windows con Visual Studio 1. Aprire Example.sln file2. Aprire l'example.cpp. 3. Compilare ed eseguire l'exampcodificali
In Linux tramite Bash 1. Decomprimi la sorgente file, vai alla cartella con il contenuto decompresso. Il principale file per l'esamplui è
example.cpp. 2. Nella bash, chiamare:
a. “sudo make install” per copiare gli oggetti condivisi e chiamare ldconfig. b. “make all” per creare l'eseguibile di prova. 3. La cartella bin contiene un file eseguibile example file. Con bash: vai alla cartella di output e digita ./example. Se non si verifica alcun errore, i tuoi oggetti condivisi sono ora correttamente installati e la tua libreria è pronta per l'uso. Se l'errore è ./example: errore durante il caricamento delle librerie condivise: libnanolib.so: impossibile aprire l'oggetto condiviso file: Non esiste tale file o directory, l'installazione degli oggetti condivisi non è riuscita. In questo caso, segui i passaggi successivi. 4. Crea una nuova cartella in /usr/local/lib (sono necessari i diritti di amministratore). Nella bash, digita quindi:
sudo mkdir /usr/local/lib/nanotec
5. Copia tutti gli oggetti condivisi dallo zip fileCartella lib di :
installa ./lib/*.so /usr/local/lib/nanotec/
6. Controllare il contenuto della cartella di destinazione con:
ls -al /usr/local/lib/nanotec/
Dovrebbe elencare l'oggetto condiviso files dalla cartella lib. 7. Esegui ldconfig su questa cartella:
sudo ldconfig /usr/local/lib/nanotec/
L'example è implementato come applicazione CLI e fornisce un'interfaccia di menu. Le voci di menu sono basate sul contesto e saranno abilitate o disabilitate, a seconda dello stato del contesto. Offrono la possibilità di selezionare ed eseguire varie funzioni di libreria seguendo il flusso di lavoro tipico per la gestione di un controller: 1. Controllare il PC per l'hardware connesso (adattatori) ed elencarli. 2. Stabilire la connessione a un adattatore. 3. Eseguire la scansione del bus per i dispositivi controller connessi. 4. Connettersi a un dispositivo.

Versione: doc 1.4.2 / NanoLib 1.3.0

10

5 Iniziare l'esampil progetto
5. Testare una o più funzioni della libreria: leggere/scrivere dal/sul dizionario degli oggetti del controller, aggiornare il firmware, caricare ed eseguire un programma NanoJ, far funzionare il motore e regolarlo, configurare e utilizzare la/le registrazione/iampleggere.
6. Chiudere la connessione, prima con il dispositivo, poi con l'adattatore.

Versione: doc 1.4.2 / NanoLib 1.3.0

11

Creare il tuo progetto Windows

Crea, compila ed esegui il tuo progetto Windows per utilizzare NanoLib.
6.1 Importa NanoLib
Importa l'intestazione NanoLib filee librerie tramite MS Visual Studio.
1. Apri Visual Studio. 2. Tramite Crea nuovo progetto > Console App C++ > Avanti: seleziona un tipo di progetto. 3. Assegna un nome al tuo progetto (qui: NanolibTest) per creare una cartella di progetto in Esplora soluzioni. 4. Seleziona Fine. 5. Apri le finestre file explorer e vai alla nuova cartella del progetto creata. 6. Crea due nuove cartelle, inc e lib. 7. Apri la cartella del pacchetto NanoLib. 8. Da lì: copia l'intestazione files dalla cartella include nella cartella del progetto inc e tutti i file .lib e .dll
files alla tua nuova cartella di progetto lib. 9. Controlla la tua cartella di progetto per la dovuta struttura, ad esempioampon:

Nanotic-NanoLib-C++-Programmazione-FIG- (2)cartella ect per la dovuta struttura:
. 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 Configura il tuo progetto
Utilizzare Solution Explorer in MS Visual Studio per impostare i progetti NanoLib. Nota: per un corretto funzionamento di NanoLib, selezionare la configurazione release (non debug!) nelle impostazioni del progetto Visual C++; quindi compilare e collegare il progetto con runtime VC di C++ ridistribuibili [2022].
1. In Esplora soluzioni: vai alla cartella del tuo progetto (qui: NanolibTest). 2. Fai clic contemporaneamente sulla cartella per aprire il menu contestuale. 3. Seleziona Proprietà. 4. Attiva Tutte le configurazioni e Tutte le piattaforme. 5. Seleziona C/C++ e vai a Directory di inclusione aggiuntive. 6. Inserisci: $(ProjectDir)Nanolib/includes;%(AdditionalIncludeDirectories) 7. Seleziona Linker e vai a Directory di libreria aggiuntive. 8. Inserisci: $(ProjectDir)Nanolib;%(AdditionalLibraryDirectories) 9. Estendi Linker e seleziona Input. 10. Vai a Dipendenze aggiuntive e inserisci: nanolib.lib;%(AdditionalDependencies) 11. Conferma con OK.

Versione: doc 1.4.2 / NanoLib 1.3.0

12

6 Creare il proprio progetto Windows
12. Vai su Configurazione > C++ > Linguaggio > Standard del linguaggio > Standard ISO C++17 e imposta lo standard del linguaggio su C++17 (/std:c++17).
6.3 Costruisci il tuo progetto
Crea il tuo progetto NanoLib in MS Visual Studio. 1. Apri il file *.cpp principale file (qui: nanolib_example.cpp) e modifica il codice, se necessario. 2. Seleziona Build > Configuration Manager. 3. Modifica Active solution platforms in x64. 4. Conferma tramite Close. 5. Seleziona Build > Build solution. 6. Nessun errore? Controlla se l'output di compilazione riporta correttamente:
1>—— Pulizia avviata: Progetto: NanolibTest, Configurazione: Debug x64 —–========== Pulizia: 1 riuscita, 0 fallita, 0 saltata ==========

Versione: doc 1.4.2 / NanoLib 1.3.0

13

7 Creare il tuo progetto Linux
7 Creare il tuo progetto Linux
Crea, compila ed esegui il tuo progetto Linux per utilizzare NanoLib. 1. Nel kit di installazione NanoLib decompresso: Apri /nanotec_nanolib. 2. Trova tutti gli oggetti condivisi nel tar.gz file. 3. Seleziona un'opzione: installa ogni libreria con un Makefile o a mano.
7.1 Installare gli oggetti condivisi con Makefile
Usa Creafile con Linux Bash per installare automaticamente tutti i file *.so predefiniti files. 1. Tramite Bash: vai alla cartella contenente il makefile. 2. Copia gli oggetti condivisi tramite:
sudo make install 3. Conferma tramite:
configurazione ld
7.2 Installare manualmente gli oggetti condivisi
Utilizzare Bash per installare tutti i file *.so files di NanoLib manualmente. 1. Tramite Bash: Crea una nuova cartella all'interno di /usr/local/lib. 2. Diritti di amministratore necessari! Digita:
sudo mkdir /usr/local/lib/nanotec 3. Passare alla cartella del pacchetto di installazione decompresso. 4. Copiare tutti gli oggetti condivisi dalla cartella lib tramite:
installa ./nanotec_nanolib/lib/*.so /usr/local/lib/nanotec/ 5. Controlla il contenuto della cartella di destinazione tramite:
ls -al /usr/local/lib/nanotec/ 6. Controllare se tutti gli oggetti condivisi dalla cartella lib sono elencati. 7. Eseguire ldconfig su questa cartella tramite:
sudo ldconfig /usr/local/lib/nanotec/
7.3 Crea il tuo progetto
Con i tuoi oggetti condivisi installati: crea un nuovo progetto per la tua Linux NanoLib. 1. Tramite Bash: crea una nuova cartella di progetto (qui: NanoLibTest) tramite:
mkdir Test NanoLib cd Test NanoLib
2. Copia l'intestazione files in una cartella di inclusione (qui: inc) tramite: mkdir inc cp / FILE È>/nanotec_nanolib/inc/*.hpp inc
3. Crea un principale file (NanoLibTest.cpp) tramite: #include “accessor_factory.hpp” #include

Versione: doc 1.4.2 / NanoLib 1.3.0

14

7 Creare il tuo progetto Linux
int main(){ nlc::NanoLibAccessor *accessor = getNanoLibAccessor();
nlc::ResultBusHwIds risultato = accessor->listAvailableBusHardware();
se(risultato.hasError()) { std::cout << risultato.getError() << std::endl; }
altrimenti { std::cout << “Riuscito” << std::endl; }
elimina l'accessore; restituisci 0; }
4. Controlla la cartella del tuo progetto per verificare la corretta struttura:

Nanotic-NanoLib-C++-Programmazione-FIG- (3)
Test di NanoLib
inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result.hpp NanoLibTest.cpp
7.4 Compila e testa il tuo progetto
Rendi la tua Linux NanoLib pronta per l'uso tramite Bash.
1. Tramite Bash: compilare il file principale file tramite:
g++ -Wall -Wextra -pedantic -I./inc -c NanoLibTest.cpp -o NanoLibTest
2. Collegare l'eseguibile tramite:
g++ -Wall -Wextra -pedantic -I./inc -o test NanoLibTest.o L/usr/local/lib/nanotec -lnanolib -ldl
3. Eseguire il programma di test tramite:
./test
4. Controlla se Bash segnala correttamente:
successo

Versione: doc 1.4.2 / NanoLib 1.3.0

15

8 Riferimento classi/funzioni

8 Riferimento classi/funzioni

Trova qui un elenco delle classi dell'interfaccia utente di NanoLib e le relative funzioni membro. La descrizione tipica di una funzione include una breve introduzione, la definizione della funzione e un elenco di parametri/ritorni:

ExampleFunction () Ti dice brevemente cosa fa la funzione.
vuoto virtuale nlc::NanoLibAccessor::ExampleFunction (Param_a const & param_a, Param_b const & param_B)

Parametri param_a param_b
Restituisce risultatoVoid

Commento aggiuntivo se necessario. Commento aggiuntivo se necessario.

8.1 NanoLibAccessore

Classe di interfaccia utilizzata come punto di ingresso alla NanoLib. Un tipico flusso di lavoro è simile al seguente:
1. Inizia eseguendo la scansione dell'hardware con NanoLibAccessor.listAvailableBusHardware (). 2. Definire le impostazioni di comunicazione con BusHardwareOptions (). 3. Aprire la connessione hardware con NanoLibAccessor.openBusHardwareWithProtocol (). 4. Scansiona il bus per i dispositivi collegati con NanoLibAccessor.scanDevices (). 5. Aggiungi un dispositivo con NanoLibAccessor.addDevice (). 6. Connettersi al dispositivo con NanoLibAccessor.connectDevice (). 7. Al termine dell'operazione, disconnettere il dispositivo con NanoLibAccessor.disconnectDevice (). 8. Rimuovere il dispositivo con NanoLibAccessor.removeDevice (). 9. Chiudere la connessione hardware con NanoLibAccessor.closeBusHardware ().
NanoLibAccessor ha le seguenti funzioni membro pubbliche:

listAvailableBusHardware () Utilizzare questa funzione per elencare l'hardware del bus di campo disponibile.
ResultBusHwIds virtuale nlc::NanoLibAccessor::listAvailableBusHardware ()

Restituisce ResultBusHwIds

Fornisce un array di ID del bus di campo.

openBusHardwareWithProtocol () Utilizzare questa funzione per connettere l'hardware del bus.
ResultVoid virtuale nlc::NanoLibAccessor::openBusHardwareWithProtocol (BusHardwareId const & busHwId, BusHardwareOptions const & busHwOpt)

Parametri busHwId busHwOpt
Restituisce risultatoVoid

Specifica il bus di campo da aprire. Specifica le opzioni di apertura del bus di campo. Conferma che è stata eseguita una funzione di annullamento.

isBusHardwareOpen () Utilizzare questa funzione per verificare se la connessione hardware del bus di campo è aperta.
ResultVoid virtuale nlc::NanoLibAccessor::openBusHardwareWithProtocol (const BusHardwareId e busHwId, const BusHardwareOptions e busHwOpt)

Versione: doc 1.4.2 / NanoLib 1.3.0

16

8 Riferimento classi/funzioni

Parametri BusHardwareId Restituisce true
falso

Specifica ciascun bus di campo da aprire. L'hardware è aperto. L'hardware è chiuso.

getProtocolSpecificAccessor () Utilizzare questa funzione per ottenere l'oggetto accessor specifico del protocollo.
ResultVoid virtuale nlc::NanoLibAccessor::getProtocolSpecificAccessor (BusHardwareId const & busHwId)

Parametri busHwId Restituisce ResultVoid

Specifica il bus di campo per il quale ottenere l'accessor. Conferma che è stata eseguita una funzione di annullamento.

getProfinetDCP () Utilizzare questa funzione per restituire un riferimento all'interfaccia Profinet DCP.
ProfinetDCP virtuale e getProfinetDCP ()

Restituisce ProfinetDCP

ottenereSamplerInterface () Utilizzare questa funzione per ottenere un riferimento ai messaggi sampinterfaccia utente.
S virtualeampInterfaccia e getSamplerInterfaccia ()

Ritorna SamplerInterface

Si riferisce al sampclasse di interfaccia ler.

setBusState () Utilizzare questa funzione per impostare lo stato specifico del protocollo del bus.
ResultVoid virtuale nlc::NanoLibAccessor::setBusState (const BusHardwareId e busHwId, const std::string e stato)

Stato dei parametri busHwId
Restituisce risultatoVoid

Specifica il bus di campo da aprire. Assegna uno stato specifico del bus come valore stringa. Conferma che è stata eseguita una funzione di annullamento.

scanDevices () Utilizzare questa funzione per cercare dispositivi nella rete.
ResultDeviceId virtuali nlc::NanoLibAccessor::scanDevices (const BusHardwareId & busHwId, NlcScanBusCallback* callback)

Parametri callback busHwId
Restituisce ResultDeviceId IOError

Specifica il bus di campo da scansionare. Tracciatore di avanzamento NlcScanBusCallback. Fornisce un array di ID dispositivo. Informa che un dispositivo non è stato trovato.

Versione: doc 1.4.2 / NanoLib 1.3.0

17

8 Riferimento classi/funzioni

aggiungiDispositivo ()
Utilizzare questa funzione per aggiungere un dispositivo bus descritto da deviceId all'elenco dei dispositivi interni di NanoLib e per restituire deviceHandle per tale dispositivo.
ResultDeviceHandle virtuale nlc::NanoLibAccessor::addDevice (DeviceId const & deviceId)

Parametri deviceId Restituisce ResultDeviceHandle

Specifica il dispositivo da aggiungere all'elenco. Fornisce un handle del dispositivo.

connectDevice () Utilizzare questa funzione per connettere un dispositivo tramite deviceHandle.
ResultVoid virtuale nlc::NanoLibAccessor::connectDevice (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultVoid
Errore IOErrore

Specifica a quale dispositivo bus si connette NanoLib. Conferma che è stata eseguita una funzione di annullamento. Informa che un dispositivo non è stato trovato.

getDeviceName () Utilizzare questa funzione per ottenere il nome di un dispositivo tramite deviceHandle.
stringa di risultato virtuale nlc::NanoLibAccessor::getDeviceName (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultString

Specifica per quale dispositivo bus NanoLib ottiene il nome. Fornisce i nomi dei dispositivi come una stringa.

getDeviceProductCode () Utilizzare questa funzione per ottenere il codice prodotto di un dispositivo tramite deviceHandle.
ResultInt virtuale nlc::NanoLibAccessor::getDeviceProductCode (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultInt

Specifica per quale dispositivo bus NanoLib ottiene il codice prodotto. Fornisce i codici prodotto come numeri interi.

getDeviceVendorId () Utilizzare questa funzione per ottenere l'ID del fornitore del dispositivo tramite deviceHandle.
ResultInt virtuale nlc::NanoLibAccessor::getDeviceVendorId (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultInt
Risorsa non disponibile

Specifica per quale dispositivo bus NanoLib ottiene l'ID del fornitore. Fornisce gli ID fornitore come numero intero. Informa che non è stato trovato alcun dato.

Versione: doc 1.4.2 / NanoLib 1.3.0

18

8 Riferimento classi/funzioni

getDeviceId () Utilizzare questa funzione per ottenere l'ID di un dispositivo specifico dall'elenco interno di NanoLib.
ResultDeviceId virtuale nlc::NanoLibAccessor::getDeviceId (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultDeviceId

Specifica per quale dispositivo bus NanoLib ottiene l'ID dispositivo. Fornisce un ID dispositivo.

getDeviceIds () Utilizzare questa funzione per ottenere l'ID di tutti i dispositivi dall'elenco interno di NanoLib.
ResultDeviceId virtuali nlc::NanoLibAccessor::getDeviceIds ()

Restituisce ResultDeviceId

Fornisce un elenco di ID dispositivo.

getDeviceUid () Utilizzare questa funzione per ottenere l'ID univoco di un dispositivo (96 bit/12 byte) tramite deviceHandle.
ResultArrayByte virtuale nlc::NanoLibAccessor::getDeviceUid (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultArrayByte
Risorsa non disponibile

Specifica per quale dispositivo bus NanoLib ottiene l'ID univoco. Fornisce ID univoci come array di byte. Informa che non è stato trovato alcun dato.

getDeviceSerialNumber () Utilizzare questa funzione per ottenere il numero di serie di un dispositivo tramite deviceHandle.
stringa di risultato virtuale NanolibAccessor::getDeviceSerialNumber (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultString
Risorsa non disponibile

Specifica per quale dispositivo bus NanoLib ottiene il numero di serie. Fornisce i numeri di serie come una stringa. Informa che non è stato trovato alcun dato.

getDeviceHardwareGroup () Utilizzare questa funzione per ottenere il gruppo hardware di un dispositivo bus tramite deviceHandle.
ResultDeviceId virtuale nlc::NanoLibAccessor::getDeviceHardwareGroup (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultInt

Specifica per quale dispositivo bus NanoLib ottiene il gruppo hardware.
Fornisce i gruppi hardware come numero intero.

getDeviceHardwareVersion () Utilizzare questa funzione per ottenere la versione hardware di un dispositivo bus tramite deviceHandle.
ResultDeviceId virtuale nlc::NanoLibAccessor::getDeviceHardwareVersion (DeviceHandle const deviceHandle)

Versione: doc 1.4.2 / NanoLib 1.3.0

19

8 Riferimento classi/funzioni

Parametri dispositivoHandle

Resi

Risorsa StringaRisultatoNon disponibile

Specifica per quale dispositivo bus NanoLib ottiene la versione hardware. Fornisce i nomi dei dispositivi come una stringa. Informa che non è stato trovato alcun dato.

getDeviceFirmwareBuildId () Utilizzare questa funzione per ottenere l'ID di build del firmware di un dispositivo bus tramite deviceHandle.
ResultDeviceId virtuale nlc::NanoLibAccessor::getDeviceFirmwareBuildId (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultString

Specifica per quale dispositivo bus NanoLib ottiene l'ID di build del firmware.
Fornisce i nomi dei dispositivi come una stringa.

getDeviceBootloaderVersion () Utilizzare questa funzione per ottenere la versione del bootloader di un dispositivo bus tramite deviceHandle.
ResultInt virtuale nlc::NanoLibAccessor::getDeviceBootloaderVersion (DeviceHandle const deviceHandle)

Parametri dispositivoHandle

Resi

Risorsa ResultIntNon disponibile

Specifica per quale dispositivo bus NanoLib ottiene la versione del bootloader. Fornisce le versioni del bootloader come numero intero. Informa che non è stato trovato alcun dato.

getDeviceBootloaderBuildId () Utilizzare questa funzione per ottenere l'ID build del bootloader di un dispositivo bus tramite deviceHandle.
ResultDeviceId virtuale nlc::NanoLibAccessor:: (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultString

Specifica per quale dispositivo bus NanoLib ottiene l'ID build del bootloader.
Fornisce i nomi dei dispositivi come una stringa.

rebootDevice () Utilizzare questa funzione per riavviare il dispositivo tramite deviceHandle.
ResultVoid virtuale nlc::NanoLibAccessor::rebootDevice (const DeviceHandle deviceHandle)

Parametri deviceHandle Restituisce ResultVoid

Specifica il bus di campo da riavviare. Conferma che è stata eseguita una funzione di annullamento.

getDeviceState () Utilizzare questa funzione per ottenere lo stato specifico del protocollo del dispositivo.
stringa di risultato virtuale nlc::NanoLibAccessor::getDeviceState (DeviceHandle const deviceHandle)

Parametri dispositivoHandle

Specifica per quale dispositivo bus NanoLib ottiene lo stato.

Versione: doc 1.4.2 / NanoLib 1.3.0

20

8 Riferimento classi/funzioni

Restituisce StringaRisultato

Fornisce i nomi dei dispositivi come una stringa.

setDeviceState () Utilizzare questa funzione per impostare lo stato specifico del protocollo del dispositivo.
ResultVoid virtuale nlc::NanoLibAccessor::setDeviceState (const DeviceHandle deviceHandle, const std::string & stato)

Parametri stato del dispositivoHandle
Restituisce risultatoVoid

Specifica per quale dispositivo bus NanoLib imposta lo stato. Assegna uno stato specifico del bus come valore stringa. Conferma che è stata eseguita una funzione di annullamento.

OttieniStatoConnessione()
Utilizzare questa funzione per ottenere l'ultimo stato di connessione noto di un dispositivo specifico tramite deviceHandle (= Disconnesso, Connesso, ConnectedBootloader)
Stato di connessione del risultato virtuale nlc::NanoLibAccessor::getConnectionState (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultConnectionState

Specifica per quale dispositivo bus NanoLib ottiene lo stato di connessione.
Fornisce uno stato di connessione (= Disconnesso, Connesso, ConnessoBootloader).

controllaStatoConnessione()
Solo se l'ultimo stato noto non era Disconnesso: utilizzare questa funzione per controllare ed eventualmente aggiornare lo stato di connessione di un dispositivo specifico tramite deviceHandle e testando diverse operazioni specifiche della modalità.
Stato di connessione del risultato virtuale nlc::NanoLibAccessor::checkConnectionState (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultConnectionState

Specifica per quale dispositivo bus NanoLib controlla lo stato della connessione.
Fornisce uno stato di connessione (= non disconnesso).

assignObjectDictionary () Utilizzare questa funzione manuale per assegnare autonomamente un dizionario oggetto (OD) a deviceHandle.
ResultObjectDictionary virtuale nlc::NanoLibAccessor::assignObjectDictionary (DeviceHandle const deviceHandle, ObjectDictionary const & objectDictionary)

Parametri deviceHandle objectDictionary
Restituisce DizionarioOggettoRisultato

Specifica a quale dispositivo bus NanoLib assegna l'OD. Mostra le proprietà di un dizionario oggetti.

autoAssignObjectDictionary ()
Utilizza questo automatismo per consentire a NanoLib di assegnare un dizionario oggetti (OD) a deviceHandle. Una volta trovato e caricato un OD adatto, NanoLib lo assegna automaticamente al dispositivo. Nota: se un OD compatibile è già caricato nella libreria di oggetti, NanoLib lo utilizzerà automaticamente senza scansionare la directory inviata.
ResultObjectDictionary virtuale nlc::NanoLibAccessor::autoAssignObjectDictionary (DeviceHandle const deviceHandle, const std::string & dictionaryLocationPath)

Versione: doc 1.4.2 / NanoLib 1.3.0

21

8 Riferimento classi/funzioni

Parametri dispositivoHandle

Resi

dizionariLocationPath ResultObjectDictionary

Specifica per quale dispositivo bus NanoLib scansionerà automaticamente gli OD adatti. Specifica il percorso della directory OD. Mostra le proprietà di un dizionario oggetti.

getAssignedObjectDictionary ()
Utilizzare questa funzione per ottenere il dizionario degli oggetti assegnato a un dispositivo da deviceHandle.
DizionarioOggettoRisultato virtuale nlc::NanoLibAccessor::getAssignedObjectDictionary (DeviceHandle const dispositivo
Maniglia)

Parametri deviceHandle Restituisce ResultObjectDictionary

Specifica per quale dispositivo bus NanoLib ottiene l'OD assegnato. Mostra le proprietà di un dizionario oggetti.

getObjectDictionaryLibrary () Questa funzione restituisce un riferimento OdLibrary.
OdLibrary virtuale& nlc::NanoLibAccessor::getObjectDictionaryLibrary ()

Restituisce OdLibrary&

Apre l'intera libreria OD e i relativi dizionari oggetti.

setLoggingLevel () Utilizzare questa funzione per impostare i dettagli del registro necessari (e log file misurare). Il livello predefinito è Informazioni.
vuoto virtuale nlc::NanoLibAccessor::setLoggingLevel (livello LogLevel)

Livello dei parametri

Sono possibili i seguenti dettagli di registro:

0 = Traccia 1 = Debug 2 = Informazioni 3 = Avvisa 4 = Errore 5 = Critico 6 = Disattivato

Livello più basso (registro più grande file); registra ogni possibile dettaglio, oltre all'avvio/arresto del software. Registra le informazioni di debug (= risultati provvisori, contenuto inviato o ricevuto, ecc.) Livello predefinito; registra i messaggi informativi. Registra i problemi che si sono verificati ma non interromperà l'algoritmo corrente. Registra solo i problemi gravi che hanno bloccato l'algoritmo. Livello più alto (log più piccolo file); disattiva la disconnessione; nessun ulteriore registro. Nessuna registrazione.

impostaCallbackLogging()
Utilizzare questa funzione per impostare un puntatore di callback di registrazione e un modulo di registro (= libreria) per tale callback (non per il logger stesso).
vuoto virtuale nlc::NanoLibAccessor::setLoggingCallback (NlcLoggingCallback* callback, const nlc::LogModule & logModule)

Parametri *callback logModule

Imposta un puntatore di callback. Sintonizza il callback (non il logger!) sulla tua libreria.

0 = NanolibCore 1 = NanolibCANopen 2 = NanolibModbus 3 = NanolibEtherCAT

Attiva un callback solo per il core di NanoLib. Attiva un callback solo CANopen. Attiva un callback solo Modbus. Attiva un callback solo EtherCAT.

Versione: doc 1.4.2 / NanoLib 1.3.0

22

8 Riferimento classi/funzioni

4 = NanolibRest 5 = NanolibUSB

Attiva un callback solo REST. Attiva un callback solo USB.

unsetLoggingCallback () Utilizzare questa funzione per annullare un puntatore di callback di registrazione.
vuoto virtuale nlc::NanoLibAccessor::unsetLoggingCallback ()

readNumber () Utilizzare questa funzione per leggere un valore numerico dal dizionario oggetti.
Risultato virtuale nlc::NanoLibAccessor::readNumber (const DeviceHandle deviceHandle, const OdIndex odIndex)

Parametri deviceHandle odIndex
Restituisce RisultatoInt

Specifica da quale dispositivo bus NanoLib legge. Specifica il (sotto)indice da cui leggere. Fornisce un valore numerico non interpretato (possono essere valori con segno, senza segno, fissi a 16.16 bit).

readNumberArray () Utilizzare questa funzione per leggere array numerici dal dizionario oggetti.
ResultArrayInt virtuale nlc::NanoLibAccessor::readNumberArray (const DeviceHandle dispositivoHandle, const uint16_t indice)

Parametri indice deviceHandle
Restituisce ResultArrayInt

Specifica da quale dispositivo bus NanoLib legge. Indice degli oggetti matrice. Fornisce un array di numeri interi.

readBytes () Utilizzare questa funzione per leggere byte arbitrari (dati dell'oggetto del dominio) dal dizionario degli oggetti.
ResultArrayByte virtuale nlc::NanoLibAccessor::readBytes (const DeviceHandle dispositivoHandle, const OdIndex odIndex)

Parametri deviceHandle odIndex
Restituisce ResultArrayByte

Specifica da quale dispositivo bus NanoLib legge. Specifica il (sotto)indice da cui leggere. Fornisce un array di byte.

readString () Utilizzare questa funzione per leggere stringhe dalla directory degli oggetti.
stringa di risultato virtuale nlc::NanoLibAccessor::readString (const DeviceHandle deviceHandle, const OdIndex odIndex)

Parametri deviceHandle odIndex
Restituisce StringaRisultato

Specifica da quale dispositivo bus NanoLib legge. Specifica il (sotto)indice da cui leggere. Fornisce i nomi dei dispositivi come una stringa.

Versione: doc 1.4.2 / NanoLib 1.3.0

23

8 Riferimento classi/funzioni

writeNumber () Utilizzare questa funzione per scrivere valori numerici nella directory dell'oggetto.
ResultVoid virtuale nlc::NanoLibAccessor::writeNumber (const DeviceHandle deviceHandle, int64_t valore, const OdIndex odIndex, unsigned int bitLength)

Parametri valore deviceHandle odIndex bitLength
Restituisce risultatoVoid

Specifica su quale dispositivo bus scrive NanoLib. Il valore non interpretato (può essere con segno, senza segno, correzione 16.16). Specifica il (sotto)indice da cui leggere. Lunghezza in bit. Conferma che è stata eseguita una funzione di annullamento.

writeBytes () Utilizzare questa funzione per scrivere byte arbitrari (dati dell'oggetto del dominio) nella directory dell'oggetto.
ResultVoid virtuale nlc::NanoLibAccessor::writeBytes (const DeviceHandle dispositivoHandle, const std::vector & dati, const OdIndex odIndex)

Parametri deviceHandle dati odIndex
Restituisce risultatoVoid

Specifica su quale dispositivo bus scrive NanoLib. Vettore/array di byte. Specifica il (sotto)indice da cui leggere. Conferma che è stata eseguita una funzione di annullamento.

caricareFirmware ()
Utilizzare questa funzione per aggiornare il firmware del controller.
ResultVoid virtuale nlc::NanoLibAccessor::uploadFirmware (const DeviceHandle dispositivoHandle, const std::vector & fwData, NlcDataTransferCallback* (richiamata)

Parametri deviceHandle fwData NlcDataTransferCallback
Restituisce risultatoVoid

Specifica quale dispositivo bus viene aggiornato da NanoLib. Array contenente dati firmware. Un tracciatore del progresso dei dati. Conferma che è stata eseguita una funzione di annullamento.

caricareFirmwareFromFile ()
Utilizzare questa funzione per aggiornare il firmware del controller caricandolo file.
ResultVoid virtuale nlc::NanoLibAccessor::uploadFirmwareFromFile (const DeviceHandle dispositivoHandle, const std::string & assolutoFilePercorso, NlcDataTransferCallback* callback)

Parametri deviceHandle assolutoFilePercorso NlcDataTransferCallback
Restituisce risultatoVoid

Specifica quale dispositivo bus viene aggiornato da NanoLib. Percorso verso file contenente dati firmware (std::string). Un tracciante di avanzamento dati. Conferma che è stata eseguita una funzione void.

Versione: doc 1.4.2 / NanoLib 1.3.0

24

8 Riferimento classi/funzioni

caricaBootloader ()
Utilizza questa funzione per aggiornare il bootloader del controller.
ResultVoid virtuale nlc::NanoLibAccessor::uploadBootloader (const DeviceHandle dispositivoHandle, const std::vector & btData, NlcDataTransferCallback* (richiamata)

Parametri deviceHandle btData NlcDataTransferCallback
Restituisce risultatoVoid

Specifica quale dispositivo bus viene aggiornato da NanoLib. Array contenente i dati del bootloader. Un tracciatore del progresso dei dati. Conferma che è stata eseguita una funzione di annullamento.

uploadBootloaderFromFile ()
Utilizzare questa funzione per aggiornare il bootloader del controller caricandolo file.
ResultVoid virtuale nlc::NanoLibAccessor::uploadBootloaderFromFile (const DeviceHandle dispositivoHandle, const std::string & bootloaderAbsoluteFilePercorso, NlcDataTransferCallback* callback)

Parametri deviceHandle bootloaderAbsoluteFilePercorso NlcDataTransferCallback
Restituisce risultatoVoid

Specifica quale dispositivo bus viene aggiornato da NanoLib. Percorso verso file contenente dati del bootloader (std::string). Un tracciante di avanzamento dei dati. Conferma che è stata eseguita una funzione void.

caricaBootloaderFirmware ()
Utilizza questa funzione per aggiornare il bootloader e il firmware del controller.
ResultVoid virtuale nlc::NanoLibAccessor::uploadBootloaderFirmware (const DeviceHandle dispositivoHandle, const std::vector & btData, const std::vettore & fwData, NlcDataTransferCallback* (richiamata)

Parametri deviceHandle btData fwData NlcDataTransferCallback
Restituisce risultatoVoid

Specifica quale dispositivo bus viene aggiornato da NanoLib. Array contenente i dati del bootloader. Array contenente dati firmware. Un tracciatore del progresso dei dati. Conferma che è stata eseguita una funzione di annullamento.

uploadBootloaderFirmwareFromFile ()
Utilizza questa funzione per aggiornare il bootloader e il firmware del controller caricando il file files.
ResultVoid virtuale nlc::NanoLibAccessor::uploadBootloaderFirmwareFromFile (const DeviceHandle dispositivoHandle, const std::string & bootloaderAbsoluteFilePercorso, const std::string & assolutoFilePercorso, NlcDataTransferCallback* callback)

Parametri deviceHandle bootloaderAbsoluteFilePercorso assolutoFilePercorso NlcDataTransferCallback
Restituisce risultatoVoid

Specifica quale dispositivo bus viene aggiornato da NanoLib. Percorso verso file contenente i dati del bootloader (std::string). Percorso a file contenente i dati del firmware (uint8_t). Un tracciatore del progresso dei dati. Conferma che è stata eseguita una funzione di annullamento.

Versione: doc 1.4.2 / NanoLib 1.3.0

25

8 Riferimento classi/funzioni

caricareNanoJ ()
Utilizza questa funzione pubblica per caricare il programma NanoJ sul tuo controller.
ResultVoid virtuale nlc::NanoLibAccessor::uploadNanoJ (DeviceHandle const deviceHandle, std::vector const & vmmData, NlcDataTransferCallback* (richiamata)

Parametri deviceHandle vmmData NlcDataTransferCallback
Restituisce risultatoVoid

Specifica su quale dispositivo bus viene caricato NanoLib. Array contenente dati NanoJ. Un tracciatore del progresso dei dati. Conferma che è stata eseguita una funzione di annullamento.

caricareNanoJFromFile ()
Utilizzare questa funzione pubblica per caricare il programma NanoJ sul controller caricando il file.
ResultVoid virtuale nlc::NanoLibAccessor::uploadNanoJFromFile (const DeviceHandle dispositivoHandle, const std::string & assolutoFilePercorso, NlcDataTransferCallback* callback)

Parametri deviceHandle assolutoFilePercorso NlcDataTransferCallback
Restituisce risultatoVoid

Specifica su quale dispositivo bus viene caricato NanoLib. Percorso verso file contenente dati NanoJ (std::string). Un tracciante di avanzamento dei dati. Conferma che è stata eseguita una funzione void.

disconnessioneDevice () Utilizzare questa funzione per disconnettere il dispositivo tramite deviceHandle.
ResultVoid virtuale nlc::NanoLibAccessor::disconnectDevice (DeviceHandle const deviceHandle)

Parametri deviceHandle Restituisce ResultVoid

Specifica da quale dispositivo bus NanoLib si disconnette. Conferma che è stata eseguita una funzione di annullamento.

rimuoviDevice () Utilizza questa funzione per rimuovere il tuo dispositivo dall'elenco dei dispositivi interni di NanoLib.
ResultVoid virtuale nlc::NanoLibAccessor::removeDevice (const DeviceHandle deviceHandle)

Parametri deviceHandle Restituisce ResultVoid

Specifica quale dispositivo bus NanoLib elimina. Conferma che è stata eseguita una funzione di annullamento.

closeBusHardware () Utilizzare questa funzione per disconnettersi dall'hardware del bus di campo.
ResultVoid virtuale nlc::NanoLibAccessor::closeBusHardware (BusHardwareId const & busHwId)

Parametri busHwId Restituisce ResultVoid

Specifica il bus di campo da cui disconnettersi. Conferma che è stata eseguita una funzione di annullamento.

Versione: doc 1.4.2 / NanoLib 1.3.0

26

8 Riferimento classi/funzioni

8.2 BusHardwareId
Utilizzare questa classe per identificare l'hardware del bus uno a uno o per distinguere tra loro diversi hardware del bus. Questa classe (senza che le funzioni setter siano immutabili dalla creazione in poi) contiene anche informazioni su:
Hardware (= nome adattatore, adattatore di rete ecc.) Protocollo da utilizzare (= Modbus TCP, CANopen ecc.) Identificatore hardware bus (= nome porta seriale, nome amichevole MAC
indirizzo ecc.)

BusHardwareId () [1/3] Costruttore che crea un nuovo oggetto ID hardware del bus.
nlc::BusHardwareId::BusHardwareId (std::stringa costante & busHardware_, std::stringa costante & protocollo_, std::stringa costante & hardwareSpecifier_, std::stringa costante & nome_)

Parametri busHardware_ protocollo_ hardwareSpecifier_ extraHardwareSpecifier_ nome_

Tipo di hardware (= ZK-USB-CAN-1 ecc.). Protocollo di comunicazione bus (= CANopen ecc.). L'identificatore di un hardware (= COM3 ecc.). L'identificatore aggiuntivo dell'hardware (ad esempio, informazioni sulla posizione USB). Un nome descrittivo (= AdapterName (Port) ecc. ).

BusHardwareId() [2/3] Costruttore che crea un nuovo oggetto ID hardware del bus, con l'opzione per uno specificatore hardware aggiuntivo.
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_, std::string const & protocollo_, std::string const & hardwareSpecifier_, std::string const & extraHardwareSpecifier_, std::string const & nome_)

Parametri busHardware_ protocollo_ hardwareSpecifier_ extraHardwareSpecifier_ nome_

Tipo di hardware (= ZK-USB-CAN-1 ecc.). Protocollo di comunicazione bus (= CANopen ecc.). L'identificatore di un hardware (= COM3 ecc.). L'identificatore aggiuntivo dell'hardware (ad esempio, informazioni sulla posizione USB). Un nome descrittivo (= AdapterName (Port) ecc. ).

BusHardwareId () [3/3] Costruttore che copia un busHardwareId esistente.
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)

nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)

Parametri busHardwareId

Denomina l'ID hardware del bus da cui copiare.

equals () Confronta un nuovo ID hardware del bus con quelli esistenti.
bool nlc::BusHardwareId::equals (BusHardwareId const & altro) const

Parametri altro Restituisce vero

Un altro oggetto della stessa classe. Se entrambi sono uguali in tutti i valori.

Versione: doc 1.4.2 / NanoLib 1.3.0

27

8 Riferimento classi/funzioni

falso

Se i valori differiscono.

getBusHardware () Legge la stringa dell'hardware del bus.
std::string nlc::BusHardwareId::getBusHardware () const

Restituisce una stringa

getHardwareSpecifier () Legge la stringa specificatrice dell'hardware del bus (= nome della rete, ecc.).
std::string nlc::BusHardwareId::getHardwareSpecifier () const

Restituisce una stringa

getExtraHardwareSpecifier () Legge la stringa specificatrice dell'hardware extra del bus (= indirizzo MAC ecc.).
std::string nlc::BusHardwareId::getExtraHardwareSpecifier () const

Restituisce una stringa

getName() Legge il nome descrittivo dell'hardware del bus.
std::string nlc::BusHardwareId::getName () const

Restituisce una stringa

getProtocol() Legge la stringa del protocollo del bus.
std::string nlc::BusHardwareId::getProtocol () const

Restituisce una stringa

toString() Restituisce l'ID hardware del bus come stringa.
std::stringa nlc::BusHardwareId::toString () const

Restituisce una stringa
8.3 Opzioni Hardware Bus
Trova in questa classe, in un elenco chiave-valore di stringhe, tutte le opzioni necessarie per aprire un bus hardware.

Versione: doc 1.4.2 / NanoLib 1.3.0

28

8 Riferimento classi/funzioni

BusHardwareOptions () [1/2] Costruisce un nuovo oggetto opzione hardware bus.
nlc::BusHardwareOptions::BusHardwareOptions () Utilizzare la funzione addOption () per aggiungere coppie chiave-valore.

BusHardwareOptions () [2/2] Costruisce un nuovo oggetto opzioni hardware bus con la mappa chiave-valore già installata.
nlc::BusHardwareOptions::BusHardwareOptions (std::mappa const e opzioni)

Opzioni dei parametri

Una mappa con le opzioni per il funzionamento dell'hardware del bus.

addOption () Crea chiavi e valori aggiuntivi.
void nlc::BusHardwareOptions::addOption (std::string const & chiave, std::string const & valore)

Valore chiave dei parametri

Example: BAUD_RATE_OPTIONS_NAME, vedere bus_hw_options_ defaults
Example: BAUD_RATE_1000K, vedere bus_hw_options_defaults

equals () Confronta le BusHardwareOptions con quelle esistenti.
bool nlc::BusHardwareOptions::equals (BusHardwareOptions const & altro) const

Parametri altro Restituisce vero
falso

Un altro oggetto della stessa classe. Se l'altro oggetto ha tutte le stesse identiche opzioni. Se l'altro oggetto ha chiavi o valori diversi.

getOptions () Legge tutte le coppie chiave-valore aggiunte.
std::mappa nlc::BusHardwareOptions::getOptions () const

Restituisce la mappa delle stringhe

toString () Restituisce tutte le chiavi/valori come una stringa.
std::stringa nlc::BusHardwareId::toString () const

Restituisce una stringa
8.4 BusHwOptionsDefault
Questa classe di opzioni di configurazione predefinita ha i seguenti attributi pubblici:

Versione: doc 1.4.2 / NanoLib 1.3.0

29

8 Riferimento classi/funzioni

const CanBus const Seriale const RESTfulBus const EtherCATBus

canBus = CanBus () seriale = Seriale () restfulBus = RESTfulBus() ethercatBus = EtherCATBus()

8.5 Velocità Baud

Struttura che contiene i baudrate del bus CAN nei seguenti attributi pubblici:

const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa

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" VELOCITÀ_BAUD_10K = "5k" VELOCITÀ_BAUD_5K = "XNUMXk"

8.6 CanBus

Classe di opzioni di configurazione predefinita con i seguenti attributi pubblici:

const std::string const CanBaudRate const Ixxat

BAUD_RATE_OPTIONS_NAME = “velocità di trasmissione dell'adattatore lattina” baudRate = CanBaudRate () ixxat = Ixxat ()

8.7 CanOpenNmtService

Per il servizio NMT, questa struttura contiene gli stati CANopen NMT come valori stringa nei seguenti attributi pubblici:

const std::stringa const std::stringa const std::stringa const std::stringa

START = “START” STOP = “STOP” PRE_OPERATIONAL = “PRE_OPERATIONAL” RESET = “RESET” RESET_COMMUNICATION = “RESET_COMMUNICATION”

8.8 CanOpenNmtState

Questa struttura contiene gli stati CANopen NMT come valori stringa nei seguenti attributi pubblici:

const std::stringa const std::stringa const std::stringa const std::stringa

ARRESTATO = “ARRESTATO” PRE_OPERATIONAL = “PRE_OPERATIONAL” OPERATIONAL = “OPERATIONAL” INIZIALIZZAZIONE = “INIZIALIZZAZIONE” SCONOSCIUTO = “SCONOSCIUTO”

8.9 Struttura EtherCATBus

Questa struttura contiene le opzioni di configurazione della comunicazione EtherCAT nei seguenti attributi pubblici:

Versione: doc 1.4.2 / NanoLib 1.3.0

30

8 Riferimento classi/funzioni

const std::string NETWORK_FIRMWARE_STATE_OP- Stato della rete trattato come modalità firmware. Accettabile

TION_NAME = “Stato del firmware di rete”

valori (predefinito = PRE_OPERATIONAL):

EtherCATState::PRE_OPERATIONAL EtherCATState::SAFE_OPERATIONAL EtherCATState::OPERATIONAL

const std::string DEFAULT_NETWORK_FIRMWARE_ STATE = “PRE_OPERATIONAL”

const std::string EXCLUSIVE_LOCK_TIMEOUT_OP- Timeout in millisecondi per acquisire il blocco esclusivo su

TION_NAME = “Timeout blocco condiviso”

dalla rete (default = 500 ms).

const unsigned int DEFAULT_EXCLUSIVE_LOCK_ TIMEOUT = “500”

const std::string SHARED_LOCK_TIMEOUT_OPTION_ Timeout in millisecondi per acquisire il blocco condiviso su

NOME = “Timeout blocco condiviso”

dalla rete (default = 250 ms).

const unsigned int DEFAULT_SHARED_LOCK_TIMEOUT = “250”

const std::string READ_TIMEOUT_OPTION_NAME = Timeout in millisecondi per un'operazione di lettura (predefinito

"Timeout di lettura"

= 700 ms).

const unsigned int DEFAULT_READ_TIMEOUT = “700”

const std::string WRITE_TIMEOUT_OPTION_NAME = Timeout in millisecondi per un'operazione di scrittura (predefinito

"Timeout di scrittura"

= 200 ms).

const unsigned int DEFAULT_WRITE_TIMEOUT = “200”

const std::string READ_WRITE_ATTEMPTS_OPTION_ Numero massimo di tentativi di lettura o scrittura (valori diversi da zero)

NOME = “Tentativi di lettura/scrittura”

soltanto; predefinito = 5).

const unsigned int DEFAULT_READ_WRITE_ATTEMPTS = “5”

const std::string CHANGE_NETWORK_STATE_ATTEMPTS_OPTION_NAME = “Tentativi di modifica dello stato della rete”

Numero massimo di tentativi per alterare lo stato della rete (solo valori diversi da zero; impostazione predefinita = 10).

const unsigned int DEFAULT_CHANGE_NETWORK_ STATE_ATTEMPTS = “10”

const std::string PDO_IO_ENABLED_OPTION_NAME Abilita o disabilita l'elaborazione PDO per l'input digitale /

= “PDO IO abilitato”

uscite (solo “Vero” o “Falso”; impostazione predefinita = “Vero”).

const std::string DEFAULT_PDO_IO_ENABLED = “Vero”

8.10 Struttura EtherCATState

Questa struttura contiene gli stati dello slave/rete EtherCAT come valori stringa nei seguenti attributi pubblici. Nota: lo stato predefinito all'accensione è PRE_OPERATIONAL; NanoLib non può fornire uno stato "OPERATIONAL" affidabile in un sistema operativo non in tempo reale:

const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa

NESSUNO = “NESSUNO” INIT = “INIT” PRE_OPERATIONAL = “PRE_OPERATIONAL” BOOT = “BOOT” SAFE_OPERATIONAL = “SAFE_OPERATIONAL” OPERATIONAL = “OPERATIONAL”

Versione: doc 1.4.2 / NanoLib 1.3.0

31

8 Riferimento classi/funzioni

8.11 Ixxat

Questa struttura contiene tutte le informazioni per Ixxat usb-to-can nei seguenti attributi pubblici:

const std::string

ADAPTER_BUS_NUMBER_OPTIONS_NAME = "numero bus adattatore ixxat"

const IxxatAdapterBusNumber adattatoreBusNumber = IxxatAdapterBusNumber ()

8.12 IxxatAdapterBusNumber

Questa struttura contiene il numero di bus per Ixxat usb-to-can nei seguenti attributi pubblici:

const std::stringa const std::stringa const std::stringa

BUS_NUMBER_0_DEFAULT = “0” BUS_NUMBER_1 = “1” BUS_NUMBER_2 = “2” BUS_NUMBER_3 = “3”

Picco 8.13

Questa struttura contiene tutte le informazioni per Peak usb-to-can nei seguenti attributi pubblici:

const std::string

ADAPTER_BUS_NUMBER_OPTIONS_NAME = “numero di bus dell'adattatore di picco”

const NumeroBusAdattatorediPicco NumeroBusAdattatorediPicco = NumeroBusAdattatorediPicco ()

8.14 NumeroBusAdattatorePicco

Questa struttura contiene il numero di bus per Peak usb-to-can nei seguenti attributi pubblici:

const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa

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 DeviceHandle
Questa classe rappresenta un handle per il controllo di un dispositivo su un bus e dispone delle seguenti funzioni membro pubbliche.

DeviceHandle () DeviceHandle (gestore uint32_t)

Versione: doc 1.4.2 / NanoLib 1.3.0

32

8 Riferimento classi/funzioni

equals () Si confronta con un determinato handle di dispositivo.
bool uguale (DeviceHandle const altro) const (uint32_t handle)

toString () Restituisce una rappresentazione di stringa dell'handle del dispositivo.
std::stringa toString () const

get() Restituisce l'handle del dispositivo.
uint32_t ottieni () costante

8.16 ID dispositivo
Utilizza questa classe (non immutabile dalla creazione in poi) per identificare e distinguere i dispositivi su un bus:

Identificatore dell'adattatore hardware

Identificatore del dispositivo

Descrizione

Il significato dei valori ID/descrizione del dispositivo dipende dal bus. Per esample, un bus CAN può utilizzare l'ID intero.

DeviceId () [1/3] Costruisce un nuovo oggetto ID dispositivo.
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId_, unsigned int deviceId_, std::string const & description_)

Parametri busHardwareId_ deviceId_ descrizione_

Identificatore dell'autobus. Un indice; soggetto al bus (= ID nodo CANopen ecc.). Una descrizione (può essere vuota); soggetto a autobus.

DeviceId() [2/3] Costruisce un nuovo oggetto ID dispositivo con opzioni ID estese.
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId, unsigned int deviceId_, std::string const & description_ std::vector const & extraId_, std::string const & extraStringId_)

Parametri busHardwareId_ deviceId_ description_ extraId_ extraStringId_

Identificatore del bus. Un indice; soggetto al bus (= ID nodo CANopen ecc.). Una descrizione (può essere vuota); soggetto al bus. Un ID aggiuntivo (può essere vuoto); il significato dipende dal bus. ID stringa aggiuntivo (può essere vuoto); il significato dipende dal bus.

DeviceId () [3/3] Costruisce una copia di un oggetto ID dispositivo.
nlc::DeviceId::DeviceId (DeviceId const &)

Versione: doc 1.4.2 / NanoLib 1.3.0

33

8 Riferimento classi/funzioni

Parametri deviceId_

ID del dispositivo da cui copiare.

equals () Confronta gli oggetti nuovi con quelli esistenti.
bool nlc::DeviceId::equals (DeviceId const & altro) const

Restituisce un valore booleano

getBusHardwareId () Legge l'ID hardware del bus.
ID hardware del bus nlc::DeviceId::getBusHardwareId () const

Restituisce BusHardwareId

getDescription() Legge la descrizione del dispositivo (forse inutilizzata).
std::string nlc::DeviceId::getDescription () const

Restituisce una stringa

getDeviceId () Legge l'ID del dispositivo (forse inutilizzato).
int senza segno nlc::DeviceId::getDeviceId () const

Restituisce un interno senza segno

toString () Restituisce l'oggetto come una stringa.
std::stringa nlc::DeviceId::toString () const

Restituisce una stringa

getExtraId () Legge l'ID aggiuntivo del dispositivo (potrebbe essere inutilizzato).
const std::vettore &getExtraId () costante

Restituisce il vettore

Un vettore degli ID extra aggiuntivi (potrebbe essere vuoto); il significato dipende dall'autobus.

getExtraStringId () Legge l'ID della stringa aggiuntiva del dispositivo (potrebbe essere inutilizzato).
std::string getExtraStringId () const

Versione: doc 1.4.2 / NanoLib 1.3.0

34

8 Riferimento classi/funzioni

Restituisce una stringa

L'ID della stringa aggiuntiva (potrebbe essere vuoto); il significato dipende dall'autobus.

8.17 Convertitore di livelli di registro

Questa classe restituisce il livello del registro come stringa. static std::string toString (nlc::LogLevel logLevel)

8.18 Convertitore di moduli di registro

Questa classe restituisce il modulo di registro specifico della libreria, modulesetLoggingLevel(), come stringa.

std::stringa statica

toString (nlc::LogModule logModule)

statico std::string toString (nlc::LogModule logModule)

8.19 DizionarioOggetto
Questa classe rappresenta un dizionario oggetti di un controller e dispone delle seguenti funzioni membro pubbliche: getDeviceHandle ()
ResultDeviceHandle virtuale getDeviceHandle () const Restituisce ResultDeviceHandle

getObject () virtuale ResultObjectSubEntry getObject (OdIndex const odIndex) Restituisce ResultObjectSubEntry

getObjectEntry () virtuale ResultObjectEntry getObjectEntry (indice uint16_t)

Restituisce VoceOggettoRisultato

Informa sulle proprietà di un oggetto.

getXmlFileNome () virtuale ResultString getXmlFileNome () const

Restituisce StringaRisultato

Restituisce l'XML file nome come una stringa.

readNumber () Risultato virtuale readNumber (OdIndex const odIndex) Restituisce Risultato
readNumberArray () virtuale ResultArrayInt readNumberArray (uint16_t const indice)

Versione: doc 1.4.2 / NanoLib 1.3.0

35

8 Riferimento classi/funzioni
Restituisce ResultArrayInt readString ()
stringa di risultato virtuale readString (OdIndex const odIndex) Restituisce stringa di risultato readBytes () stringa di risultato virtuale readBytes (OdIndex const odIndex) Restituisce ResultArrayByte writeNumber () stringa di risultato virtuale writeNumber (OdIndex const odIndex, const int64_t value) Restituisce ResultVoid writeBytes () stringa di risultato virtuale writeBytes (OdIndex const OdIndex, std::vector
const & data) Restituisce ResultVoid Collegamenti correlati OdIndex
8.20 Inserimento oggetto
Questa classe rappresenta una voce di oggetto del dizionario degli oggetti, ha i seguenti attributi protetti statici e funzioni membro pubbliche:
nlc::ObjectSubEntry statico non validoObject
getName () Legge il nome dell'oggetto come stringa.
std::string virtuale getName () const
getPrivate() Controlla se l'oggetto è privato.
bool virtuale getPrivate() const
getIndex () Legge l'indirizzo dell'indice dell'oggetto.
uint16_t virtuale getIndex() const

Versione: doc 1.4.2 / NanoLib 1.3.0

36

8 Riferimento classi/funzioni

getDataType () Legge il tipo di dati dell'oggetto.
nlc virtuale::ObjectEntryDataType getDataType () const

getObjectCode () Legge il codice oggetto:

Null Deftype Defstruct Var Array Record

0x00 0x05 0x06 0x07 0x08 0x09

nlc::ObjectCode virtuale getObjectCode () const

getObjectSaveable () Controlla se l'oggetto è salvabile e la sua categoria (vedere il manuale del prodotto per maggiori dettagli): APPLICAZIONE, COMUNICAZIONE, DRIVE, MISC_CONFIG, MODBUS_RTU, NO, TUNING, CLIENTE, ETHERNET, CANOPEN, VERIFY1020, UNKNOWN_SAVEABLE_TYPE
nlc virtuale::ObjectSaveable getObjectSaveable () const

getMaxSubIndex () Legge il numero di sottoindici supportati da questo oggetto.
uint8_t virtuale getMaxSubIndex () const

getSubEntry () nlc::ObjectSubEntry virtuale e getSubEntry (uint8_t subIndex)
Vedi anche ObjectSubEntry.
8.21 Sottovoce oggetto
Questa classe rappresenta una sottovoce dell'oggetto (sottoindice) del dizionario degli oggetti e dispone delle seguenti funzioni membro pubbliche:
getName () Legge il nome dell'oggetto come stringa.
std::string virtuale getName () const

getSubIndex () Legge l'indirizzo del sottoindice.
uint8_t virtuale getSubIndex() const

Versione: doc 1.4.2 / NanoLib 1.3.0

37

8 Riferimento classi/funzioni

getDataType () Legge il tipo di dati dell'oggetto.
nlc virtuale::ObjectEntryDataType getDataType () const

getSdoAccess () Controlla se il sottoindice è accessibile tramite SDO:

Sola lettura

1

Solo scrittura

2

LeggiScrivi

3

Nessun accesso

0

nlc::ObjectSdoAccessAttribute virtuale getSdoAccess () const

getPdoAccess () Controlla se il sottoindice è accessibile/mappabile tramite PDO:

Tx

1

Rx

2

TxRx

3

NO

0

nlc virtuale::ObjectPdoAccessAttribute getPdoAccess () const

getBitLength () Controlla la lunghezza del sottoindice.
uint32_t virtuale getBitLength () const

getDefaultValueAsNumeric () Legge il valore predefinito del sottoindice per i tipi di dati numerici.
ResultInt virtuale getDefaultValueAsNumeric (std::string const & chiave) const

getDefaultValueAsString () Legge il valore predefinito del sottoindice per i tipi di dati stringa.
ResultString virtuale getDefaultValueAsString (std::string const & key) const

getDefaultValues ​​() Legge i valori predefiniti del sottoindice.
std::map virtuale ottieniValoriDefault() const

Versione: doc 1.4.2 / NanoLib 1.3.0

38

8 Riferimento classi/funzioni

readNumber () Legge il valore effettivo numerico del sottoindice.
Risultato virtualeInt readNumber () const

readString () Legge il valore attuale della stringa del sottoindice.
ResultString virtuale readString () const

readBytes () Legge il valore attuale del sottoindice in byte.
ResultArrayByte virtuale readBytes () const

writeNumber () Scrive un valore numerico nel sottoindice.
Risultato virtualeVoid writeNumber (const int64_t valore) const

writeBytes () Scrive un valore nel sottoindice in byte.
Risultato virtualeVoid writeBytes (std::vector const & dati) const

8.22 OdIndice
Utilizzare questa classe (immutabile dalla creazione in poi) per racchiudere e individuare gli indici/sottoindici della directory degli oggetti. L'OD di un dispositivo ha fino a 65535 (0xFFFF) righe e 255 (0xFF) colonne; con spazi tra le file discontinue. Per ulteriori dettagli, consultare lo standard CANopen e il manuale del prodotto.
OdIndex () Costruisce un nuovo oggetto OdIndex.
nlc::OdIndex::OdIndex (indice uint16_t, sottoindice uint8_t)

Sottoindice dell'indice dei parametri

Da 0 a 65535 (0xFFFF) incl. Da 0 a 255 (0xFF) incl.

getIndex () Legge l'indice (da 0x0000 a 0xFFFF).
uint16_t nlc::OdIndex::getIndex() costante

Restituisce uint16_t

getSubindex () Legge il sottoindice (da 0x00 a 0xFF)
uint8_t nlc::OdIndex::getSubIndex() costante

Versione: doc 1.4.2 / NanoLib 1.3.0

39

8 Riferimento classi/funzioni

Restituisce uint8_t

toString () Restituisce l'indice e il sottoindice come stringa. La stringa predefinita 0xIIII:0xSS è la seguente:

I = indice da 0x0000 a 0xFFFF

S = sottoindice da 0x00 a 0xFF

std::string nlc::OdIndex::toString () const

Restituisce 0xIIII:0xSS

Rappresentazione di stringa predefinita

8.23 OdLibrary
Utilizzare questa interfaccia di programmazione per creare istanze della classe ObjectDictionary da XML. ConassignObjectDictionary, puoi quindi associare ciascuna istanza a un dispositivo specifico grazie a un identificatore creato in modo univoco. Le istanze ObjectDictionary così create vengono archiviate nell'oggetto OdLibrary a cui è possibile accedere tramite indice. La classe ODLibrary carica gli elementi ObjectDictionary da file o array, li memorizza e ha le seguenti funzioni membro pubbliche:

getObjectDictionaryCount () virtuale uint32_t getObjectDictionaryCount () const

getObjectDictionary () RisultatoOggettoDictionary virtuale getObjectDictionary (uint32_t odIndex)

Restituisce DizionarioOggettoRisultato

addObjectDictionaryFromFile ()
ResultObjectDictionary virtuale addObjectDictionaryFromFile (std::string const & absoluteXmlFileSentiero)

Restituisce DizionarioOggettoRisultato

aggiungiOggettoDizionario ()
ResultObjectDictionary virtuale addObjectDictionary (std::vector const & odXmlData, const std::string &xmlFilePercorso = std::string ())

Restituisce DizionarioOggettoRisultato
8.24 OdTypesHelper
Oltre alle seguenti funzioni membro pubbliche, questa classe contiene tipi di dati personalizzati. Nota: per controllare i tipi di dati personalizzati, cercare la classe enum ObjectEntryDataType in od_types.hpp.

uintToObjectCode () Converte numeri interi senza segno in codice oggetto:

Tipo di definizione nullo

0x00 0x05

Versione: doc 1.4.2 / NanoLib 1.3.0

40

8 Riferimento classi/funzioni

Defstruct Var Array Record

0x06 0x07 0x08 0x09

static ObjectCode uintToObjectCode (unsigned int objectCode)

isNumericDataType () Informa se un tipo di dati è numerico o meno.
bool statico isNumericDataType (ObjectEntryDataType dataType)

isDefstructIndex () Informa se un oggetto è un indice di struttura di definizione oppure no.
bool statico isDefstructIndex (uint16_t typeNum)

isDeftypeIndex () Informa se un oggetto è un indice di tipo definizione o meno.
bool statico isDeftypeIndex (uint16_t typeNum)

isComplexDataType () Informa se un tipo di dati è complesso o meno.
static bool isComplexDataType (ObjectEntryDataType tipo di dati)

uintToObjectEntryDataType () Converte numeri interi senza segno nel tipo di dati OD.
sstatic ObjectEntryDataType uintToObjectEntryDataType (uint16_t objectDataType)

objectEntryDataTypeToString () Converte il tipo di dati OD in stringa.
statico std::string objectEntryDataTypeToString (ObjectEntryDataType odDataType)

stringToObjectEntryDatatype () Converte la stringa nel tipo di dati OD, se possibile. Altrimenti restituisce UNKNOWN_DATATYPE.
stringa statica ObjectEntryDataType stringToObjectEntryDatatype (std::string dataTypeString)

Versione: doc 1.4.2 / NanoLib 1.3.0

41

8 Riferimento classi/funzioni

objectEntryDataTypeBitLength () Informa sulla lunghezza in bit del tipo di dati della voce di oggetto.
static uint32_t objectEntryDataTypeBitLength (ObjectEntryDataType const & dataType)

8.25 Struttura RESTfulBus

Questa struttura contiene le opzioni di configurazione della comunicazione per l'interfaccia RESTful (su Ethernet). Contiene i seguenti attributi pubblici:

const std::string const unsigned long const std::string const unsigned long const std::string const unsigned long

CONNECT_TIMEOUT_OPTION_NAME = "Timeout connessione RESTful" DEFAULT_CONNECT_TIMEOUT = 200 REQUEST_TIMEOUT_OPTION_NAME = "Timeout richiesta RESTful" DEFAULT_REQUEST_TIMEOUT = 200 RESPONSE_TIMEOUT_OPTION_NAME = "Timeout risposta RESTful" DEFAULT_RESPONSE_TIMEOUT = 750

8.26 Profinet DCP
In Linux, l'applicazione chiamante necessita delle funzionalità CAP_NET_ADMIN e CAP_NET_RAW. Per abilitare: sudo setcap 'cap_net_admin,cap_net_raw+eip' ./executable. In Windows, l'interfaccia ProfinetDCP utilizza WinPcap (testato con la versione 4.1.3) o Npcap (testato con le versioni 1.60 e 1.30). Cerca quindi la libreria wpcap.dll caricata dinamicamente nel seguente ordine (Nota: nessun supporto Win10Pcap attuale):
1. Directory Nanolib.dll 2. Directory di sistema Windows SystemRoot%System32 3. Directory di installazione Npcap SystemRoot%System32Npcap 4. Percorso dell'ambiente
Questa classe rappresenta un'interfaccia Profinet DCP e dispone delle seguenti funzioni membro pubbliche:

getScanTimeout () Informa sul timeout della scansione del dispositivo (impostazione predefinita = 2000 ms).
uint32_t virtuale nlc::ProfinetDCP::getScanTimeout () const

setScanTimeout () Imposta il timeout della scansione del dispositivo (impostazione predefinita = 2000 ms).
vuoto virtuale nlc::setScanTimeout (uint32_t timeoutMsec)

getResponseTimeout () Informa su un timeout di risposta del dispositivo per le operazioni di configurazione, ripristino e lampeggio (impostazione predefinita = 1000 ms).
uint32_t virtuale nlc::ProfinetDCP::getResponseTimeout () const

setResponseTimeout () Informa su un timeout di risposta del dispositivo per le operazioni di configurazione, ripristino e lampeggio (impostazione predefinita = 1000 ms).
vuoto virtuale nlc::ProfinetDCP::setResponseTimeout (uint32_t timeoutMsec)

Versione: doc 1.4.2 / NanoLib 1.3.0

42

8 Riferimento classi/funzioni

isServiceAvailable ()
Utilizzare questa funzione per verificare la disponibilità del servizio Profinet DCP.
Validità/disponibilità della scheda di rete Windows: disponibilità WinPcap/Npcap Linux: capacità CAP_NET_ADMIN/CAP_NET_RAW
virtual ResultVoid nlc::ProfinetDCP::isServiceAvailable (const BusHardwareId e busHardwareId)

Parametri BusHardwareId Restituisce true
falso

ID hardware del servizio Profinet DCP da verificare. Il servizio è disponibile. Il servizio non è disponibile.

scanProfinetDevices () Utilizzare questa funzione per scansionare il bus hardware per la presenza di dispositivi Profinet.
Risultato virtualeProfinetDevices scanProfinetDevices (const BusHardwareId & busHardwareId)

Parametri BusHardwareId Restituisce RisultatoProfinetDevices

Specifica ciascun bus di campo da aprire. L'hardware è aperto.

setupProfinetDevice () Stabilisce le seguenti impostazioni del dispositivo:

Nome del dispositivo

Indirizzo IP

Maschera di rete

Gateway predefinito

ResultVoid virtuale nlc::setupProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice struct & profinetDevice, bool savePermanent)

resetProfinetDevice () Arresta il dispositivo e lo ripristina alle impostazioni di fabbrica.
ResultVoid virtuale nlc::resetProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice & profinetDevice)

flickProfinetDevice () Comanda al dispositivo Profinet di iniziare a lampeggiare il LED Profinet.
ResultVoid virtuale nlc::blinkProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice &profinetDevice)

validateProfinetDeviceIp () Utilizzare questa funzione per verificare l'indirizzo IP del dispositivo.
ResultVoid virtuale validateProfinetDeviceIp (const BusHardwareId &busHardwareId, const ProfinetDevice & profinetDevice)

Parametri BusHardwareId ProfinetDevice

Specifica l'ID hardware da controllare. Specifica il dispositivo Profinet da convalidare.

Versione: doc 1.4.2 / NanoLib 1.3.0

43

8 Riferimento classi/funzioni

Restituisce risultatoVoid

8.27 Struttura ProfinetDevice

I dati del dispositivo Profinet hanno i seguenti attributi pubblici:

std::stringa std::stringa std::array< uint8_t, 6 > uint32_t uint32_t uint32_t

deviceName deviceVendor macAddress ipAddress netMask defaultGateway

L'indirizzo MAC viene fornito come array nel formato macAddress = {xx, xx, xx, xx, xx, xx}; mentre l'indirizzo IP, la maschera di rete e il gateway sono tutti interpretati come numeri esadecimali big endian, come ad esempio:

Indirizzo IP: 192.168.0.2 Maschera di rete: 255.255.0.0 Gateway: 192.168.0.1

0xC0A80002 0xFFFF0000 0xC0A80001

8.28 Classi di risultati

Utilizzare i valori restituiti "facoltativi" di queste classi per verificare se una chiamata di funzione ha avuto successo o meno e individuare anche i motivi dell'errore. In caso di successo, la funzione hasError() restituisce false. Con getResult() è possibile leggere il valore del risultato in base al tipo (ResultInt ecc.). Se una chiamata fallisce, ne leggi il motivo con getError ().

Attributi protetti

stringa NlcErrorCode uint32_t

errorString errorCode exErrorCode

Inoltre, questa classe ha le seguenti funzioni membro pubbliche:

hasError () Legge il successo di una chiamata di funzione.
bool nlc::Result::hasError () const

Resi

vero falso

Chiamata fallita. Utilizzare getError() per leggere il valore. Chiamata riuscita. Utilizzare getResult() per leggere il valore.

getError () Legge il motivo se la chiamata di funzione fallisce.
const std::string nlc::Result::getError () const

Restituisce la stringa const

Versione: doc 1.4.2 / NanoLib 1.3.0

44

8 Riferimento classi/funzioni
risultato () Le seguenti funzioni aiutano a definire i risultati esatti:
Risultato (std::string const & errorString_)
Risultato (NlcErrorCode const & errCode, std::string const & errorString_)
Risultato (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
Risultato (Risultato const & risultato)
getErrorCode () Legge il NlcErrorCode.
NlcErrorCode getErrorCode () const
OttieniExErrorCode () uint32_t OttieniExErrorCode () const
8.28.1 RisultatoVuoto
NanoLib ti invia un'istanza di questa classe se la funzione restituisce void. La classe eredita le funzioni pubbliche e gli attributi protetti dalla classe risultato e dispone delle seguenti funzioni membro pubbliche:
ResultVoid () Le seguenti funzioni aiutano a definire l'esatto risultato del vuoto:
ResultVoid (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 (risultato costante e risultato)
8.28.2 RisultatoInt
NanoLib ti invia un'istanza di questa classe se la funzione restituisce un numero intero. La classe eredita le funzioni pubbliche/gli attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:
getResult () Restituisce il risultato intero se una chiamata di funzione ha avuto successo.
int64_t ottieniRisultato () const
Restituisce int64_t

Versione: doc 1.4.2 / NanoLib 1.3.0

45

8 Riferimento classi/funzioni
ResultInt () Le seguenti funzioni aiutano a definire l'esatto risultato intero:
RisultatoInt (int64_t risultato_)
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 (Risultato const & risultato)
8.28.3 Stringa risultato
NanoLib ti invia un'istanza di questa classe se la funzione restituisce una stringa. La classe eredita le funzioni pubbliche/gli attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:
getResult () Legge il risultato della stringa se una chiamata di funzione ha avuto successo.
const std::string nlc::ResultString::getResult () const
Restituisce la stringa const
ResultString () Le seguenti funzioni aiutano a definire l'esatto risultato della stringa:
ResultString (std::string const & messaggio, bool hasError_)
ResultString (NlcErrorCode const & errCode, std::string const & errorString_)
ResultString (NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultString (Risultato const & risultato)
8.28.4 ResultArrayByte
NanoLib ti invia un'istanza di questa classe se la funzione restituisce un array di byte. La classe eredita le funzioni pubbliche/attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:
getResult() Legge il vettore di byte se una chiamata di funzione ha avuto successo.
const std::vettore nlc::ResultArrayByte::getResult() const
Restituisce un vettore costante

Versione: doc 1.4.2 / NanoLib 1.3.0

46

8 Riferimento classi/funzioni
ResultArrayByte () Le seguenti funzioni aiutano a definire il risultato esatto dell'array di byte:
ResultArrayByte (std::vettore const & risultato_)
ResultArrayByte (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 (Risultato const & risultato)
8.28.5 ResultArrayInt
NanoLib ti invia un'istanza di questa classe se la funzione restituisce un array di interi. La classe eredita le funzioni pubbliche/attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:
getResult() Legge il vettore intero se una chiamata di funzione ha avuto successo.
const std::vettore nlc::ResultArrayInt::getResult() costante
Restituisce un vettore costante
ResultArrayInt () Le seguenti funzioni aiutano a definire l'esatto risultato dell'array di numeri interi:
ResultArrayInt (std::vettore const & risultato_)
ResultArrayInt (std::string const & errorString_)
ResultArrayInt (NlcErrorCode const & errCode, std::string const & errore String_)
ResultArrayInt (NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultArrayInt (Risultato const & risultato)
8.28.6 ResultBusHwIds
NanoLib ti invia un'istanza di questa classe se la funzione restituisce un array di ID hardware del bus. La classe eredita le funzioni pubbliche / attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:
getResult() Legge il vettore bus-hardware-ID se una chiamata di funzione ha avuto successo.
const std::vettore nlc::ResultBusHwIds::getResult() const
Parametri const vettore

Versione: doc 1.4.2 / NanoLib 1.3.0

47

8 Riferimento classi/funzioni
ResultBusHwIds () Le seguenti funzioni aiutano a definire l'esatto risultato dell'array bus-hardware-ID:
ResultBusHwIds (std::vettore const & risultato_)
ResultBusHwIds (std::string const & errorString_)
ResultBusHwIds (NlcErrorCode const & errCode, std::string const & errorString_)
ResultBusHwIds (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultBusHwIds (risultato costante e risultato)
8.28.7 ResultDeviceId
NanoLib ti invia un'istanza di questa classe se la funzione restituisce un ID dispositivo. La classe eredita le funzioni pubbliche/attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:
getResult () Legge il vettore ID del dispositivo se una chiamata di funzione ha avuto successo.
ID dispositivo nlc::ResultDeviceId::getResult () const
Restituisce vettore const
ResultDeviceId () Le seguenti funzioni aiutano a definire l'esatto risultato dell'ID del dispositivo:
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 (risultato costante e risultato)
8.28.8 ResultDeviceId
NanoLib ti invia un'istanza di questa classe se la funzione restituisce un array di ID dispositivo. La classe eredita le funzioni pubbliche/attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:
getResult() Restituisce il vettore ID del dispositivo se una chiamata di funzione ha avuto successo.
ID dispositivo nlc::ResultDeviceIds::getResult () const
Restituisce vettore const

Versione: doc 1.4.2 / NanoLib 1.3.0

48

8 Riferimento classi/funzioni
ResultDeviceIds () Le seguenti funzioni aiutano a definire l'esatto risultato dell'array ID dispositivo:
ResultDeviceId (std::vettore const & risultato_)
ResultDeviceId (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 (risultato costante e risultato)
8.28.9 ResultDeviceHandle
NanoLib ti invia un'istanza di questa classe se la funzione restituisce il valore di un handle di dispositivo. La classe eredita le funzioni pubbliche/attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:
getResult () Legge l'handle del dispositivo se una chiamata di funzione ha avuto successo.
DispositivoHandle nlc::ResultDeviceHandle::getResult () const
Restituisce DeviceHandle
ResultDeviceHandle () Le seguenti funzioni aiutano a definire l'esatto risultato della gestione del dispositivo:
ResultDeviceHandle (DeviceHandle const & risultato_)
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 (risultato costante e risultato)
8.28.10 DizionarioOggettoRisultato
NanoLib ti invia un'istanza di questa classe se la funzione restituisce il contenuto di un dizionario oggetti. La classe eredita le funzioni pubbliche/gli attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:
getResult () Legge il vettore ID del dispositivo se una chiamata di funzione ha avuto successo.
const nlc::ObjectDictionary & nlc::ResultObjectDictionary::getResult () const

Versione: doc 1.4.2 / NanoLib 1.3.0

49

8 Riferimento classi/funzioni

Resi

vettore const

ResultObjectDictionary () Le seguenti funzioni aiutano a definire l'esatto risultato del dizionario oggetti:
DizionarioOggettoRisultato (nlc::ObjectDictionary const & risultato_)

ResultObjectDictionary (std::string const & errorString_)

ResultObjectDictionary (NlcErrorCode const & errCode, std::string const & errorString_)

ResultObjectDictionary (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)

ResultObjectDictionary (risultato costante e risultato)

8.28.11 RisultatoConnectionState
NanoLib ti invia un'istanza di questa classe se la funzione restituisce informazioni sullo stato della connessione del dispositivo. La classe eredita le funzioni pubbliche/gli attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:
getResult () Legge l'handle del dispositivo se una chiamata di funzione ha avuto successo.
Informazioni sullo stato di connessione del dispositivo nlc::ResultConnectionState::getResult () const

Restituisce DeviceConnectionStateInfo Connesso/Disconnesso/ConnessoBootloader

ResultConnectionState () Le seguenti funzioni aiutano a definire l'esatto risultato dello stato della connessione:
ResultConnectionState (DeviceConnectionStateInfo const & result_)

ResultConnectionState (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 (risultato costante e risultato)

8.28.12 VoceOggettoRisultato
NanoLib ti invia un'istanza di questa classe se la funzione restituisce una voce di oggetto. La classe eredita le funzioni pubbliche/attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:

Versione: doc 1.4.2 / NanoLib 1.3.0

50

8 Riferimento classi/funzioni
getResult() Restituisce il vettore ID del dispositivo se una chiamata di funzione ha avuto successo.
nlc::ObjectEntry const& nlc::ResultObjectEntry::getResult () const
Restituisce const ObjectEntry
ResultObjectEntry () Le seguenti funzioni aiutano a definire il risultato esatto dell'immissione dell'oggetto:
ResultObjectEntry (nlc::ObjectEntry const & risultato_)
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 (Risultato const & risultato)
8.28.13 SottovoceOggettoRisultato
NanoLib ti invia un'istanza di questa classe se la funzione restituisce una sotto-voce di oggetto. La classe eredita le funzioni pubbliche/attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:
getResult() Restituisce il vettore ID del dispositivo se una chiamata di funzione ha avuto successo.
nlc::ObjectSubEntry const & nlc::ResultObjectSubEntry::getResult () const
Restituisce const ObjectSubEntry
ResultObjectSubEntry () Le seguenti funzioni aiutano a definire l'esatto risultato della sottovoce dell'oggetto:
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 (Risultato const & risultato)
8.28.14 RisultatoProfinetDevices
NanoLib ti invia un'istanza di questa classe se la funzione restituisce un dispositivo Profinet. La classe eredita le funzioni pubbliche/gli attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:

Versione: doc 1.4.2 / NanoLib 1.3.0

51

8 Riferimento classi/funzioni

getResult () Legge il vettore del dispositivo Profinet se una chiamata di funzione ha avuto successo.
const std::vettore & ottieniRisultato () const

RisultatoProfinetDevices () Le seguenti funzioni aiutano a definire gli esatti dispositivi Profinet.
RisultatoProfinetDevices (const std::vector & dispositivi profinet)
ResultProfinetDevices (const Risultato & risultato)
ResultProfinetDevices (const std::string &errorText, NlcErrorCode errorCode = NlcErrorCode::GeneralError, uint32_t extendedErrorCode = 0)
8.28.15 RisultatiampleDataArray
NanoLib ti invia un'istanza di questa classe se la funzione restituisce asample array di dati. La classe eredita le funzioni pubbliche/gli attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:
getResult () Legge l'array di dati se una chiamata di funzione ha avuto successo.
const std::vettore <SampleData> & getResult() const

RisultatoSampleDataArray () Le seguenti funzioni aiutano a definire gli esatti dispositivi Profinet.
RisultatoSampleDataArray (const std::vettore <SampleData> & dataArray)

RisultatoSampleDataArray (const std::string &errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t extendedErrorCode = 0)

RisultatoSampleDataArray (const RisultatoSampleDataArray e altri)

RisultatoSampleDataArray (const Risultato & risultato)

8.28.16 RisultatiamplerState
NanoLib ti invia un'istanza di questa classe se la funzione restituisce asampler state.Questa classe eredita le funzioni pubbliche/gli attributi protetti dalla classe risultato e ha le seguenti funzioni membro pubbliche:

getResult () Legge i messaggi sampvettore di stato ler se una chiamata di funzione ha avuto successo.
SamplerState ottiene il risultato () const

Ritorna SamplerState>

Non configurato/Configurato/Pronto/In esecuzione/Completato/Non riuscito/Annullato

Versione: doc 1.4.2 / NanoLib 1.3.0

52

8 Riferimento classi/funzioni

RisultatoSamplerState () Le seguenti funzioni aiutano a definire i messaggi esattiampstato successivo.
RisultatoSampStato ler (const Sampstato lerState)

RisultatoSamplerState (const std::string & errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t
CodiceErroreEstesi = 0)

RisultatoSamplerState (const RisultatoSamplerState e altro)

RisultatoSamplerState (const Risultato & risultato)

8.29 NlcErrorCode

Se qualcosa va storto, le classi di risultato riportano uno dei codici di errore elencati in questa enumerazione.

Codice di errore Successo GeneralError BusUnavailable CommunicationError ProtocolError
ODDoesNotExist ODInvalidAccess ODTypeMismatch OperationAborted OperationNotSupported InvalidOperation
Argomenti non validi AccessDenied ResourceNotFound ResourceUnavailable OutOfMemory TimeOutError

C: Categoria D: Descrizione R: Motivo C: Nessuno. D: Nessun errore. R: L'operazione è stata completata con successo.
C: Non specificato. D: Errore non specificato. R: Fallimento che non rientra in nessun'altra categoria.
C: Autobus. D: Bus hardware non disponibile. R: Bus inesistente, interrotto o difettoso.
C: Comunicazione. D: Comunicazione inaffidabile. R: Dati imprevisti, CRC errato, errori di frame o parità, ecc.
C: Protocollo. D: Errore di protocollo. R: Risposta dopo un'opzione di protocollo non supportato, il dispositivo segnala un protocollo non supportato, un errore nel protocollo (ad esempio, bit di sincronizzazione del segmento SDO), ecc. R: Una risposta o un rapporto del dispositivo a un protocollo non supportato (opzioni) o a errori nel protocollo (ad esempio, SDO bit di sincronizzazione del segmento), ecc. R: Protocollo non supportato (opzioni) o errore nel protocollo (ad esempio, bit di sincronizzazione del segmento SDO), ecc.
C: Dizionario degli oggetti. D: Indirizzo OD inesistente. R: Nessun indirizzo del genere nel dizionario degli oggetti.
C: dizionario degli oggetti. D: Accesso all'indirizzo OD non valido. R: Tentativo di scrivere su un indirizzo di sola lettura o di leggere da un indirizzo di sola scrittura.
C: dizionario degli oggetti. D: Tipo non corrispondente. R: valore non convertito nel tipo specificato, ad esempio, nel tentativo di trattare una stringa come un numero.
C: Applicazione. D: Processo interrotto. R: Processo tagliato dalla richiesta dell'applicazione. Restituisce solo in caso di interruzione dell'operazione tramite la funzione di callback, ad esempio dalla scansione del bus.
C: Comune. D: processo non supportato. R: Nessun bus hardware/supporto dispositivo.
C: Comune. D: Processo errato nel contesto corrente o non valido con l'argomento corrente. R: Un tentativo di riconnessione a bus/dispositivi già connessi. Un tentativo di disconnessione di quelli già disconnessi. Un tentativo di operazione del bootloader in modalità firmware o viceversa.
C: Comune. D: Argomento non valido. R: Logica o sintassi sbagliata.
C: Comune. D: L'accesso è negato. R: Mancanza di diritti o capacità per eseguire l'operazione richiesta.
C: Comune. D: Articolo specificato non trovato. R: bus hardware, protocollo, dispositivo, indirizzo OD sul dispositivo o file non è stato trovato.
C: Comune. D: Articolo specificato non trovato. R: occupato, inesistente, interrotto o difettoso.
C: Comune. D: Memoria insufficiente. R: Memoria troppo piccola per elaborare questo comando.
C: Comune. D: Processo scaduto. R: Rientro dopo la scadenza del time-out. Il timeout può essere un tempo di risposta del dispositivo, un tempo per ottenere l'accesso condiviso o esclusivo alle risorse o un tempo per commutare il bus/dispositivo in uno stato adeguato.

Versione: doc 1.4.2 / NanoLib 1.3.0

53

8 Riferimento classi/funzioni

8.30 NlcRichiamata
Questa classe padre per i callback ha la seguente funzione membro pubblica: callback()
callback virtuale ResultVoid ()

Resi

RisultatoVuoto

8.31 NlcDataTransferRichiamata
Utilizzare questa classe di callback per i trasferimenti di dati (aggiornamento firmware, caricamento NanoJ ecc.). 1. Per un caricamento firmware: definire una "co-classe" che estenda questa con un metodo di callback personalizzato
implementazione. 2. Utilizzare le istanze della "co-classe" nelle chiamate NanoLibAccessor.uploadFirmware(). La classe principale stessa ha la seguente funzione membro pubblica:

callback() callback virtuale ResultVoid (nlc::DataTransferInfo info, int32_t dati)

Resi

RisultatoVuoto

8.32 Richiamata NlcScanBus
Utilizzare questa classe di callback per la scansione del bus. 1. Definire una "co-classe" che estenda questa con un'implementazione personalizzata del metodo di callback. 2. Utilizzare le istanze della "co-classe" nelle chiamate NanoLibAccessor.scanDevices(). La classe principale stessa ha la seguente funzione membro pubblica.

richiamare ()
callback virtuale ResultVoid (nlc::BusScanInfo info, std::vector const & dispositivi trovati, int32_t dati)

Restituisce risultatoVoid
8.33 NlcLoggingCallback
Utilizzare questa classe di callback per registrare i callback. 1. Definire una classe che estende questa classe con un'implementazione personalizzata del metodo callback 2. Utilizzare un puntatore alle sue istanze per impostare un callback tramite NanoLibAccessor >
setLoggingCallback (…).
callback void virtuale (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 anniamplerInterface
Utilizzare questa classe per configurare, avviare e arrestare i messaggi di posta elettronicaampler, o per ottenere sampha condotto i dati e recupera comeampstato dell'utente o ultimo errore. La classe ha le seguenti funzioni membro pubbliche.

Versione: doc 1.4.2 / NanoLib 1.3.0

54

8 Riferimento classi/funzioni

configure () Configura comeampleggere.
Risultato virtualeVoid nlc::SamplerInterface::configure (const DeviceHandle dispositivoHandle, const SamplerConfigurazione e samplerConfigurazione)

Parametri [in] deviceHandle [in] samplerConfiguration
Restituisce risultatoVoid

Specifica quale dispositivo configurare i messaggi di posta elettronicaampler per. Specifica i valori degli attributi di configurazione. Conferma che è stata eseguita una funzione di annullamento.

getData () Ottiene i file sampdati guidati.
Risultati virtualiampleDataArray nlc::SamplerInterface::getData (const DeviceHandle dispositivoHandle)

Parametri [in] deviceHandle Restituisce ResultSampleDataArray

Specifica per quale dispositivo ottenere i dati.
Consegna la sampled data, che può essere un array vuoto se samplerNotify è attivo all'avvio.

getLastError () Ottiene comeampl'ultimo errore di ler.
Risultato virtualeVoid nlc::SamplerInterface::getLastError (const DeviceHandle dispositivoHandle)

Restituisce risultatoVoid

Conferma che è stata eseguita una funzione di annullamento.

getState () Ottiene comeamplo stato di ler.
Risultati virtualiampStato di ler nlc::SamplerInterface::getState (const DeviceHandle dispositivoHandle)

Restituisce risultatoSamplerState

Consegna la sampstato successivo.

start() Inizia comeampleggere.
Risultato virtualeVoid nlc::SamplerInterface::start (const DeviceHandle dispositivoHandle, SamplerNotifica* samplerNotify, int64_t datiapplicazione)

Parametri [in] deviceHandle [in] SamplerNotify [in] applicationData
Restituisce risultatoVoid

Specifica quale dispositivo avviare i messaggi di posta elettronicaampler per.
Specifica quali informazioni facoltative segnalare (può essere nullptr).
Opzione: inoltra i dati relativi all'applicazione (un array di valori/ID dispositivo/indice a 8 bit definito dall'utente o una data/ora, un puntatore a variabile/funzione, ecc.) a samplerNotify.
Conferma che è stata eseguita una funzione di annullamento.

Versione: doc 1.4.2 / NanoLib 1.3.0

55

8 Riferimento classi/funzioni

stop () Si ferma comeampleggere.
Risultato virtualeVoid nlc::SamplerInterface::stop (const DeviceHandle dispositivoHandle)

Parametri [in] deviceHandle Restituisce ResultVoid

Specifica quale dispositivo interrompere i messaggi di posta elettronicaampler per. Conferma che è stata eseguita una funzione di annullamento.

8.35 anniamplerConfiguration struct

Questa struttura contiene i datiampopzioni di configurazione del ler (statiche o meno).

Attributi pubblici

std::vettore indirizzi tracciati

Possono essere associati fino a 12 indirizzi ODampguidato.

uint32_t

versione

La versione di una struttura.

uint32_t

durataMillisecondi

Sampdurata ling in ms, da 1 a 65535

uint16_t

periodoMillisecondi

Sampperiodo lungo in ms.

uint16_t

numeroDiSamples

Sampmeno importo.

uint16_t

preTriggerNumberOfSamples

Samples quantità di pre-trigger.

bollo

utilizzando l'implementazione del software

Utilizzare l'implementazione del software.

bollo

utilizzandoNewFWSamplerImplementation Utilizza l'implementazione FW per i dispositivi con a

Versione FW v24xx o successiva.

SamplerMode

modalità

Normale, ripetitivo o continuo sampling.

SamplerTriggerCondition triggerCondition

Condizioni di attivazione iniziali: 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, triggerValue

SamplerTrigger

SamplerTrigger

Un trigger per iniziareamppiù?

Attributi pubblici statici
constexpr statico size_t SAMPLER_CONFIGURATION_VERSION = 0x01000000 constexpr statico size_t MAX_TRACKED_ADDRESSES = 12
8.36 anniamplerNotify
Utilizza questa classe per attivare sampricevere notifiche quando inizi comeampler. La classe ha la seguente funzione membro pubblica.

Versione: doc 1.4.2 / NanoLib 1.3.0

56

8 Riferimento classi/funzioni

notificare ()
Fornisce una voce di notifica.
vuoto virtuale nlc::SamplerNotify::notify (const ResultVoid & lastError, const SamplerState sampStato, const std::vettore <SampiDati> & sampleDatas, int64_t datiapplicazione)

Parametri [in] lastError [in] samplerState
[in] sampleDatas [in] applicationData

Segnala l'ultimo errore verificatosi durante sampling. Riferisce la sampStato del lettore al momento della notifica: Non configurato/Configurato/Pronto/In esecuzione/Completato/Non riuscito/Annullato. Riferisce la sampmatrice di dati led. Riporta i dati specifici dell'applicazione.

8.37 anniampstruttura leData

Questa struttura contiene la sampdati guidati.

uin64_t numeroiterazione

Inizia da 0 e aumenta solo in modalità ripetitiva.

std::vettore<SampledValues> Contiene l'array di sampvalori guidati.

8.38 anniampstruttura ledValue

Questa struttura contiene la sampvalori guidati.

in64_t valore uin64_t CollectTimeMsec

Contiene il valore di un indirizzo OD tracciato.
Contiene il tempo di raccolta in millisecondi, relativo alle sampl'inizio.

8.39 anniampstruttura lerTrigger

Questa struttura contiene le impostazioni di trigger di sampleggere.

Sampcondizione lerTriggerCondition
Valore OdIndex uin32_t

Condizione di attivazione: 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 (indirizzo) del trigger.
Valore della condizione o numero di bit (a partire dal bit zero).

8.40 Struttura seriale

Trova qui le tue opzioni di comunicazione seriale e i seguenti attributi pubblici:

const std::string const SerialBaudRate

BAUD_RATE_OPTIONS_NAME = “velocità in baud seriale” baudRate =Struttura SerialBaudRate

Versione: doc 1.4.2 / NanoLib 1.3.0

57

8 Riferimento classi/funzioni

const std::string const SerialParity

PARITY_OPTIONS_NAME = “parità seriale” parità = struttura SerialParity

8.41 Struttura SerialBaudRate

Trova qui il baud rate della tua comunicazione seriale e i seguenti attributi pubblici:

const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa const std::stringa

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” BA TASSO_UD_115200 = “115200” TASSO_BAUD_128000 = “128000” TASSO_BAUD_256000 = “256000”

8.42 Struttura SerialParity

Trova qui le tue opzioni di parità seriale e i seguenti attributi pubblici:

const std::stringa const std::stringa const std::stringa const std::stringa

NESSUNO = “nessuno” DISPARI = “dispari” PARI = “pari” SEGNO = “segno” SPAZIO = “spazio”

Versione: doc 1.4.2 / NanoLib 1.3.0

58

Licenze 9

Licenze 9

Intestazioni dell'interfaccia API NanoLib ed exampil codice sorgente è concesso in licenza da Nanotec Electronic GmbH & Co. KG sotto la licenza Creative Commons Attribution 3.0 Unported (CC BY). Le parti della libreria fornite in formato binario (librerie di comunicazione core e bus di campo) sono concesse in licenza in base alla licenza internazionale Creative Commons AttributionNoDerivatives 4.0 (CC BY ND).

Concessione di licenza Creative Commons
Il seguente riepilogo leggibile dall'uomo non sostituirà la licenza stessa. Puoi trovare la rispettiva licenza su creativecommons.org e collegata di seguito. Sei libero di:

Concessione di licenza CC BY 3.0
Condividi: vedi a destra. Adattarsi: remixare, trasformare e costruire sulla base di
materiale per qualsiasi scopo, anche commerciale.

Concessione di licenza CC BY-ND 4.0
Condividi: copia e ridistribuisci il materiale in qualsiasi mezzo o formato.

Il concessore di licenza non può revocare le libertà di cui sopra finché si rispettano i seguenti termini di licenza:

Concessione di licenza CC BY 3.0

Concessione di licenza CC BY-ND 4.0

Attribuzione: devi dare il credito appropriato. Attribuzione: vedi a sinistra. Ma: fornisci un collegamento a questo

fornire un collegamento alla licenza e indicare se

altra licenza.

sono state apportate modifiche. Puoi farlo in qualsiasi

Nessun derivato: se remixi, trasformi o costruisci

modo ragionevole, ma non in alcun modo che suggerisca

sul materiale, non è possibile distribuirlo

gests il concessore di licenza approva te o il tuo utilizzo.

materiale modificato.

Nessuna restrizione aggiuntiva: non puoi presentare domanda. Nessuna restrizione aggiuntiva: vedi a sinistra. termini legali o misure tecnologiche che legalmente

limitare gli altri a fare qualsiasi cosa in base alla licenza

permessi.

Nota: non è necessario rispettare la licenza per gli elementi del materiale di dominio pubblico o laddove l'utilizzo è consentito da un'eccezione o limitazione applicabile.
Nota: nessuna garanzia fornita. La licenza potrebbe non fornire tutte le autorizzazioni necessarie per l'uso previsto. Per esample, altri diritti come pubblicità, privacy o diritti morali potrebbero limitare il modo in cui utilizzi il materiale.

Versione: doc 1.4.2 / NanoLib 1.3.0

59

Note legali, contatti, versioni

©2024 Nanotec Electronic GmbH & Co.KGKapellenstr.685622 FeldkirchenGermaniaTel.+49(0) 89 900 686-0Fax+49(0)89 900 686-50 info@nanotec.dewww.nanotec.com Tutti i diritti riservati. Errori, omissioni, modifiche tecniche o di contenuto possibili senza preavviso. I marchi/prodotti citati sono marchi dei rispettivi proprietari e devono essere trattati come tali. Versione originale.

Documento 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

+ Aggiunto > Modificato # Corretto > Rielaborazione dell'ex fornitoampmeno.
+ NanoLib Modbus: aggiunto meccanismo di blocco del dispositivo per Modbus VCP. # NanoLib Core: corretto controllo dello stato della connessione. # NanoLib Code: corretta rimozione del riferimento all'hardware del bus.
+ NanoLib-CANopen: supporto per l'adattatore Peak PCAN-USB (IPEH-002021/002022).
> NanoLib Core: modificata l'interfaccia di callback di registrazione (LogLevel sostituito da LogModule). # NanoLib Logger: corretta la separazione tra core e moduli. # Modbus TCP: corretto aggiornamento firmware per FW4. # EtherCAT: corretto caricamento programma NanoJ per Core5. # EtherCAT: corretto aggiornamento firmware per Core5.
# Modbus RTU: risolti i problemi di temporizzazione con velocità di trasmissione basse durante l'aggiornamento del firmware. # RESTful: risolto il caricamento del programma NanoJ.
# Moduli NanoLib Sampler: Lettura corretta di sampvalori booleani guidati.
+ Supporto Java 11 per tutte le piattaforme. + Supporto Python 3.11/3.12 per tutte le piattaforme. + Nuova interfaccia di callback del logging (vedi esample). + Lavelli di richiamata per NanoLib Logger. > Aggiorna il registratore alla versione 1.12.0. > Moduli NanoLib Sampler: Supporto ora per il firmware del controller Nanotec v24xx. > Moduli NanoLib Sampler: cambiamento nella struttura utilizzata per sampconfigurazione successiva. > Moduli NanoLib Sampler: La modalità continua è sinonimo di infinita; la condizione di trigger viene controllata una volta; il numero di samples devono essere 0. > Moduli NanoLib Sampler: priorità normale per il thread che raccoglie i dati in modalità firmware. > Moduli NanoLib Sampler: algoritmo riscritto per rilevare la transizione tra lo stato Pronto e In esecuzione. # NanoLib Core: niente più violazioni di accesso (0xC0000005) alla chiusura di 2 o più dispositivi che utilizzano lo stesso hardware del bus. # NanoLib Core: niente più errori di segmentazione quando si collega un adattatore PEAK sotto Linux. # Moduli NanoLib Sampler: Corretto samplettura dei valori dei led in modalità firmware. # Moduli NanoLib Sampler: configurazione corretta di 502X:04. # Moduli NanoLib Sampler: corretta miscelazione dei buffer con i canali. # NanoLib-Canopen: timeout CAN aumentati per robustezza e scansione corretta a velocità di trasmissione inferiori. # NanoLib-Modbus: algoritmo di rilevamento VCP per dispositivi speciali (USB-DA-IO).
+ Supporto EtherCAT.
+ Nota sulle impostazioni del progetto VS in Configura il tuo progetto.
+ getDeviceHardwareGroup (). + getProfinetDCP (èServiceAvailable). + getProfinetDCP (validaProfinetDeviceIp). + autoAssignObjectDictionary (). + getXmlFileNome (). + const std::string & xmlFilePercorso in addObjectDictionary(). + getSamplerInterface().

Prodotto 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)

Versione: doc 1.4.2 / NanoLib 1.3.0

60

10 Colophon, contatti, versioni

Documento
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

+ Aggiunto > Modificato # Corretto + rebootDevice (). + Codice di errore ResourceUnavailable per getDeviceBootloaderVersion (), ~VendorId (), ~HardwareVersion (), ~SerialNumber e ~Uid. > firmwareUploadFromFile ora caricaFirmwareDaFile (). > firmwareUpload () ora caricaFirmware (). > bootloaderUploadFromFile () ora caricaBootloaderFromFile (). > bootloaderUpload () ora caricaBootloader (). > bootloaderFirmwareUploadFromFile () per caricareBootloaderFirmwareDaFile (). > bootloaderFirmwareUpload () ora caricaBootloaderFirmware (). > nanojUploadFromFile () ora caricaNanoJFromFile (). > nanojUpload () ora uploadNanoJ (). > objectDictionaryLibrary () ora getObjectDictionaryLibrary (). > String_String_Map ora StringStringMap. > NanoLib-Common: esecuzione più rapida di listAvailableBusHardware e openBusHardwareWithProtocol con adattatore Ixxat. > NanoLib-CANopen: impostazioni predefinite utilizzate (velocità in baud 1000k, numero bus Ixxat 0) se le opzioni hardware del bus sono vuote. > NanoLib-RESTful: autorizzazione di amministratore obsoleta per la comunicazione con bootloader Ethernet in Windows se è disponibile il driver npcap/winpcap. # NanoLib-CANopen: l'hardware del bus ora si apre senza crash con opzioni vuote. # NanoLib-Common: openBusHardwareWithProtocol () ora senza perdite di memoria.
+ Supporto Linux ARM64. + Supporto per archiviazione di massa USB / REST / Profinet DCP. + checkConnectionState (). + getDeviceBootloaderVersion (). + ResultProfinetDevices. + NlcErrorCode (sostituisce NanotecExceptions). + NanoLib Modbus: hub VCP / USB unificato in USB. > La scansione Modbus TCP restituisce risultati. < La latenza della comunicazione Modbus TCP rimane costante.
+ Altro ObjectEntryDataType (complesso e professionalefile-specifico). + IOError viene restituito se connectDevice() e scanDevices() non ne trovano nessuno. + Solo 100 ms di timeout nominale per CanOpen / Modbus.
+ Supporto Modbus (più hub USB tramite VCP). + Capitolo Creazione di un progetto Linux. + extraHardwareSpecifier per BusHardwareId (). + extraId_ ed extraStringId_ per DeviceId ().
+ setBusState (). + getDeviceBootloaderBuildId (). + getDeviceFirmwareBuildId (). + getDeviceHardwareVersion (). # Correzioni di bug.
Edizione.

Prodotto
0.8.0 0.7.1 0.7.0 0.5.1 0.5.1

Versione: doc 1.4.2 / NanoLib 1.3.0

61

Documenti / Risorse

Programmazione C++ Nanotic NanoLib [pdf] Manuale d'uso
Programmazione C NanoLib, Programmazione C, Programmazione

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *