Праграмаванне Nanotic NanoLib на C++

Інфармацыя аб прадукце
Тэхнічныя характарыстыкі
- Назва прадукту: NanoLib
- Праграмаванне Мова: C++
- Версія прадукту: 1.3.0
- Версія кіраўніцтва карыстальніка: 1.4.2
Бібліятэка NanoLib прызначана для праграмавання праграмнага забеспячэння кіравання для кантролераў Nanotec. Ён забяспечвае карыстацкі інтэрфейс, асноўныя функцыі і камунікацыйныя бібліятэкі для палягчэння распрацоўкі праграм кіравання.
Інструкцыя па ўжыванні прадукту
- Перш чым пачаць:
- Пераканайцеся, што ваша сістэма адпавядае апаратным патрабаванням, указаным у кіраўніцтве. Мэтавая аўдыторыя гэтага прадукта ўключае распрацоўшчыкаў, якія жадаюць стварыць праграмнае забеспячэнне для кіравання кантролерам Nanotec.
- Пачатак працы:
- Каб пачаць выкарыстоўваць NanoLib, выканайце наступныя дзеянні:
- Пачніце з імпарту NanoLib у свой праект.
- Пры неабходнасці наладзьце параметры праекта.
- Стварыце свой праект з уключэннем функцый NanoLib.
- Стварэнне праектаў:
- Вы можаце ствараць праекты як для асяроддзя Windows, так і для Linux. Выконвайце канкрэтныя інструкцыі, прыведзеныя ў кіраўніцтве для кожнай платформы.
- Даведка па класах / функцыях:
- Звярніцеся да кіраўніцтва карыстальніка, каб атрымаць падрабязную інфармацыю аб класах і функцыях, даступных у NanoLib для праграмнага забеспячэння кіравання.
FAQ
- Пытанне: Якая мэта NanoLib?
- A: NanoLib - гэта бібліятэка для праграмавання праграмнага забеспячэння кіравання для кантролераў Nanotec, якая забяспечвае асноўныя функцыі і магчымасці сувязі.
- Пытанне: як я магу пачаць працу з NanoLib?
- A: Пачніце з імпарту NanoLib у свой праект, канфігурацыі параметраў праекта і стварэння вашага праекта з выкарыстаннем функцый NanoLib.
“`
Кіраўніцтва карыстальніка NanoLib
C++
Дзейнічае для версіі прадукта 1.3.0
Версія кіраўніцтва карыстальніка: 1.4.2
Мэта і пагадненні дакумента
Гэты дакумент апісвае ўстаноўку і выкарыстанне бібліятэкі NanoLib і змяшчае спасылку на ўсе класы і функцыі для праграмавання вашага ўласнага праграмнага забеспячэння кіравання для кантролераў Nanotec. Мы выкарыстоўваем наступныя шрыфты:
Падкрэслены тэкст пазначае перакрыжаваную спасылку або гіперспасылку.
ExampLe 1: Для атрымання дакладных інструкцый па NanoLibAccessor, гл. напрыкладampКрок 2: усталюйце драйвер Ixxat і падключыце адаптар CAN-USB. Курсіў азначае: гэта названы аб'ект, шлях меню / пункт, укладка / file імя або (пры неабходнасці) іншамоўны выраз.
Example 1: Выберыце File > Новы > Пусты дакумент. Адкрыйце ўкладку «Інструмент» і выберыце «Каментар». напрыкладampLe 2: Гэты дакумент падзяляе карыстальнікаў (= Nutzer; usuario; utente; utilisateur; utente і г. д.) ад:
– Карыстальнік трэцяга боку (= Drittnutzer; tercero usuario; terceiro utente; tiers utilisateur; terzo utente etc.). – Канчатковы карыстальнік (= Endnutzer; usuario finale; utente finale; utilisateur finale; utente finale etc.).
Кур'ер пазначае блокі кода або каманды праграмавання. напрыкладample 1: праз Bash выклічце sudo make install, каб скапіяваць агульныя аб'екты; затым выклічце ldconfig. напрыкладampЧастка 2: Выкарыстоўвайце наступную функцыю NanoLibAccessor, каб змяніць узровень запісу ў NanoLib:
// ***** C++ варыянт *****
void setLoggingLevel(узровень LogLevel);
Тлустым шрыфтам вылучаюцца асобныя крытычна важныя словы. У якасці альтэрнатывы клічнікі ў дужках падкрэсліваюць крытычную(!) важнасць.
ExampLe 1: Абараніце сябе, іншых і сваё абсталяванне. Выконвайце нашы агульныя заўвагі па бяспецы, якія звычайна прымяняюцца да ўсіх прадуктаў Nanotec.
ExampLe 2: Для ўласнай бяспекі таксама прытрымлівайцеся асаблівых заўваг па тэхніцы бяспекі, якія адносяцца да гэтага канкрэтнага прадукту. Дзеяслоў to co-click азначае пстрычку другаснай клавішай мышы для адкрыцця кантэкстнага меню і г.д.
Example 1: пстрыкніце сумесна на file, абярыце Перайменаваць і перайменуйце file. ПрampКрок 2: каб праверыць уласцівасці, пстрыкніце адначасова на file і абярыце Ўласцівасці.
Версія: doc 1.4.2 / NanoLib 1.3.0
4
Перш чым пачаць
Перш чым пачаць карыстацца NanoLib, падрыхтуйце свой ПК і праінфармуйце сябе аб прызначэнні выкарыстання і абмежаваннях бібліятэкі.
2.1 Сістэмныя і апаратныя патрабаванні

УВАГА Няспраўнасць з-за 32-бітнай працы або спынення працы сістэмы! Выкарыстоўвайце і пастаянна падтрымлівайце 64-бітную сістэму. Выконвайце спыненне OEM і інструкцыі.
NanoLib 1.3.0 падтрымлівае ўсе прадукты Nanotec з CANopen, Modbus RTU (таксама USB на віртуальным com-порту), Modbus TCP, EtherCat і Profinet. Для старых NanoLibs: Глядзіце журнал змяненняў у выходных дадзеных. Толькі на вашу рызыку: выкарыстанне старой сістэмы. Заўвага: выконвайце сапраўдныя інструкцыі OEM, каб усталяваць як мага меншую затрымку, калі ў вас узнікнуць праблемы пры выкарыстанні USB-адаптара на базе FTDI.
Патрабаванні (64-бітная сістэма абавязковая)
Windows 10 або 11 з Visual Studio 2019 версіі 16.8 або больш позняй і Windows SDK 10.0.20348.0 (версія 2104) або больш позняй версіі
C++ Redistributables 2017 або вышэй CANopen: базавы драйвер Ixxat VCI або PCAN (дадаткова) Модуль EtherCat / Profinet DCP: Npcap або WinPcap Модуль RESTful: Npcap, WinPcap або дазвол адміністратара на
мець зносіны з загрузнікамі Ethernet
Linux з Ubuntu 20.04 LTS да 24 (усе x64 і arm64)
Загалоўкі ядра і пакет libpopt-dev Profinet DCP: магчымасці CAP_NET_ADMIN і CAP_NET_RAW
сувязі CANopen: драйвер Ixxat ECI або адаптар Peak PCAN-USB EtherCat: CAP_NET_ADMIN, CAP_NET_RAW і
CAP_SYS_NICE здольнасці RESTful: CAP_NET_ADMIN здольнасць мець зносіны з Eth-
загрузнікі ernet (таксама рэкамендуецца: CAP_NET_RAW)
Мова, адаптары fieldbus, кабелі
C++ GCC 7 або вышэй (Linux)
EtherCAT: Ethernet-кабель VCP / USB-канцэнтратар: цяпер аднастайны USB USB-назапашвальнік: USB-кабель REST: Ethernet-кабель CANopen: Ixxat USB-to-CAN V2; На-
notec ZK-USB-CAN-1, адаптар Peak PCANUSB Няма падтрымкі Ixxat для Ubuntu на arm64
Modbus RTU: Nanotec ZK-USB-RS485-1 або эквівалентны адаптар; USB-кабель на віртуальным COM-порту (VCP)
Modbus TCP: кабель Ethernet у адпаведнасці з тэхнічным лістом прадукту
2.2 Мэтавае выкарыстанне і аўдыторыя
NanoLib - гэта праграмная бібліятэка і кампанент праграмнага забеспячэння для працы і сувязі з кантролерам Nanotec у шырокім дыяпазоне прамысловых прыкладанняў і толькі для праграмістаў належнай кваліфікацыі.
З-за таго, што апаратнае забеспячэнне (ПК) і аперацыйная сістэма не працуюць у рэжыме рэальнага часу, NanoLib не прызначаны для выкарыстання ў праграмах, якія маюць патрэбу ў сінхронным шматвосевым руху або ў цэлым адчувальных да часу.
Ні ў якім разе нельга інтэграваць NanoLib у якасці кампанента бяспекі ў прадукт ці сістэму. Пры дастаўцы канчатковым карыстальнікам вы павінны дадаць адпаведныя папярэджанні і інструкцыі па бяспечным выкарыстанні і бяспечнай эксплуатацыі да кожнага прадукту з кампанентам, вырабленым Nanotec. Вы павінны перадаць усе папярэджанні, выдадзеныя Nanotec, непасрэдна канчатковаму карыстальніку.
2.3 Аб'ём пастаўкі і гарантыя
NanoLib пастаўляецца ў выглядзе папкі *.zip з нашай загрузкі webсайт для EMEA / APAC або АМЕРЫКІ. Належным чынам захавайце і распакуйце спампаваны файл перад устаноўкай. Пакет NanoLib змяшчае:
Версія: doc 1.4.2 / NanoLib 1.3.0
5
2 Перш чым пачаць
Загалоўкі інтэрфейсу як зыходны код (API)
Асноўныя функцыі як бібліятэкі ў бінарным фармаце: нана-
Бібліятэкі, якія палягчаюць зносіны: nanolibm_ lib.dll
[yourfieldbus].dll і г.д.Example project: Example.sln (Visual Studio
праект) і прample.cpp (галоўны file)
Што датычыцца аб'ёму гарантыі, калі ласка, прытрымлівайцеся а) нашых палажэнняў і ўмоў для EMEA / APAC або АМЕРЫКІ і b) усіх умоў ліцэнзіі. Заўвага: Nanotec не нясе адказнасці за няправільную або неналежную якасць, апрацоўку, мантаж, эксплуатацыю, выкарыстанне і абслугоўванне абсталявання іншых вытворцаў! У мэтах належнай бяспекі заўсёды выконвайце сапраўдныя інструкцыі OEM.
Версія: doc 1.4.2 / NanoLib 1.3.0
6
Архітэктура NanoLib
Модульная структура праграмнага забеспячэння NanoLib дазваляе арганізаваць свабодна наладжвальныя функцыі кантролера рухавіка / палявой шыны вакол строга загадзя створанага ядра. NanoLib змяшчае наступныя модулі:
Карыстальніцкі інтэрфейс (API)
Ядро NanoLib
Інтэрфейс і дапаможныя класы, якія бібліятэкі, якія
Камунікацыйныя бібліятэкі Спецыфічныя для Fieldbus бібліятэкі, якія
доступ да вашага кантролера рэалізаваць функцыянальнасць API зрабіць інтэрфейс паміж NanoLib
OD (аб'ектны слоўнік)
ўзаемадзейнічаць з аўтобуснымі бібліятэкамі.
ядро і абсталяванне шыны.
на базе асноўнай функцыі NanoLib
нацыянальнасцей.
3.1 Інтэрфейс карыстальніка
Карыстацкі інтэрфейс складаецца з інтэрфейсу загалоўка files вы можаце выкарыстоўваць для доступу да параметраў кантролера. Класы карыстальніцкага інтэрфейсу, апісаныя ў даведцы па класах / функцыях, дазваляюць:
Падключыцеся як да абсталявання (адаптар палявой шыны), так і да кантролера. Доступ да OD прылады для чытання/запісу параметраў кантролера.
3.2 Ядро NanoLib
Ядро NanoLib пастаўляецца з бібліятэкай імпарту nanolib.lib. Ён рэалізуе функцыянальнасць карыстацкага інтэрфейсу і адказвае за:
Загрузка і кіраванне камунікацыйнымі бібліятэкамі. Прадастаўленне функцый карыстальніцкага інтэрфейсу ў NanoLibAccessor. Гэтая кропка ўваходу ў зносіны дэ-
вызначае набор аперацый, якія вы можаце выканаць у ядры NanoLib і камунікацыйных бібліятэках.
3.3 Камунікацыйныя бібліятэкі
У дадатак да nanotec.services.nanolib.dll (карысна для вашай дадатковай Plug & Drive Studio), NanoLib прапануе наступныя камунікацыйныя бібліятэкі:
nanolibm_canopen.dll nanolibm_modbus.dll
nanolibm_ethercat.dll nanolibm_restful-api.dll
nanolibm_usbmmsc.dll nanolibm_profinet.dll
Усе бібліятэкі складаюць апаратны ўзровень абстракцыі паміж ядром і кантролерам. Ядро загружае іх пры запуску з прызначанай папкі праекта і выкарыстоўвае іх для ўстанаўлення сувязі з кантролерам па адпаведным пратаколе.
Версія: doc 1.4.2 / NanoLib 1.3.0
7
Пачатак працы
Прачытайце, як правільна наладзіць NanoLib для вашай аперацыйнай сістэмы і як падключыць апаратнае забеспячэнне пры неабходнасці.
4.1 Падрыхтуйце сістэму
Перш чым усталёўваць драйверы адаптара, спачатку падрыхтуйце свой ПК да аперацыйнай сістэмы. Каб падрыхтаваць ПК да вашай АС Windows, усталюйце MS Visual Studio з пашырэннямі C++. Каб усталяваць make і gcc ад Linux Bash, выклічце sudo apt install build-essentials. Затым уключыце магчымасці CAP_NET_ADMIN, CAP_NET_RAW і CAP_SYS_NICE для прыкладання, якое выкарыстоўвае NanoLib: 1. Выклічце sudo setcap 'cap_net_admin,cap_net_raw,cap_sys_nice+eip'
імя>. 2. Толькі пасля гэтага ўсталюйце драйверы адаптара.
4.2 Усталюйце драйвер адаптара Ixxat для Windows
Толькі пасля ўстаноўкі драйвера вы можаце выкарыстоўваць адаптар Ixxat USB-to-CAN V2. Прачытайце інструкцыю да USB-назапашвальнікаў, каб даведацца, калі / як актываваць віртуальны comport (VCP). 1. Спампуйце і ўсталюйце драйвер Ixxat VCI 4 для Windows з www.ixxat.com. 2. Падключыце кампактны адаптар Ixxat USB-to-CAN V2 да ПК праз USB. 3. З дапамогай дыспетчара прылад: праверце, ці драйвер і адаптар належным чынам усталяваны/распазнаны.
4.3 Усталюйце драйвер адаптара Peak для Windows
Толькі пасля належнай ўстаноўкі драйвера вы можаце выкарыстоўваць адаптар PCAN-USB ад Peak. Прачытайце інструкцыю да USB-назапашвальнікаў, каб даведацца, калі / як актываваць віртуальны comport (VCP). 1. Спампуйце і ўсталюйце ўстаноўку драйвера прылады Windows (= установачны пакет з драйверамі прылад, інструментамі і
API) ад http://www.peak-system.com. 2. Падключыце адаптар PCAN-USB Peak да ПК праз USB. 3. З дапамогай дыспетчара прылад: праверце, ці драйвер і адаптар належным чынам усталяваны/распазнаны.
4.4 Усталюйце драйвер адаптара Ixxat для Linux
Толькі пасля ўстаноўкі драйвера вы можаце выкарыстоўваць адаптар Ixxat USB-to-CAN V2. Заўвага: іншым адаптарам, якія падтрымліваюцца, патрэбны вашы дазволы праз sudo chmod +777/dev/ttyACM* (* нумар прылады). Прачытайце інструкцыю да USB-назапашвальнікаў, каб даведацца, калі / як актываваць віртуальны comport (VCP). 1. Усталюйце праграмнае забеспячэнне, неабходнае для драйвера ECI і дэма-прыкладання:
sudo apt-get update apt-get install libusb-1.0-0-dev libusb-0.1-4 libc6 libstdc++6 libgcc1 buildessential
2. Спампуйце драйвер ECI-for-Linux з www.ixxat.com. Разархівуйце яго праз:
распакуйце eci_driver_linux_amd64.zip
3. Усталюйце драйвер праз:
cd /EciLinux_amd/src/KernelModule sudo make install-usb
4. Праверце паспяховую ўстаноўку драйвера, скампіляваўшы і запусціўшы дэманстрацыйнае прыкладанне:
cd /EciLinux_amd/src/EciDemos/ sudo make cd /EciLinux_amd/bin/release/ ./LinuxEciDemo
Версія: doc 1.4.2 / NanoLib 1.3.0
8
4 Пачатак працы
4.5 Усталюйце драйвер адаптара Peak для Linux
Толькі пасля належнай ўстаноўкі драйвера вы можаце выкарыстоўваць адаптар PCAN-USB ад Peak. Заўвага: іншым адаптарам, якія падтрымліваюцца, патрэбны вашы дазволы праз sudo chmod +777/dev/ttyACM* (* нумар прылады). Прачытайце інструкцыю да USB-назапашвальнікаў, каб даведацца, калі / як актываваць віртуальны comport (VCP). 1. Праверце, ці мае ваш Linux загалоўкі ядра: ls /usr/src/linux-headers-`uname -r`. Калі няма, усталюйце
іх: sudo apt-get install linux-headers-`uname -r` 2. Толькі цяпер усталюйце пакет libpopt-dev: sudo apt-get install libpopt-dev 3. Спампуйце неабходны пакет драйвераў (peak-linux-driver-xxx.tar.gz) з www.peak-system.com. 4. Каб распакаваць яго, выкарыстайце: tar xzf peak-linux-driver-xxx.tar.gz 5. У распакаванай папцы: Скампілюйце і ўсталюйце драйверы, базавую бібліятэку PCAN і г.д.: зрабіце ўсё
sudo make install 6. Каб праверыць функцыю, падключыце адаптар PCAN-USB.
a) Праверце модуль ядра:
lsmod | grep pcan b) ... і агульная бібліятэка:
ls -l /usr/lib/libpcan*
Заўвага: калі ўзнікаюць праблемы з USB3, выкарыстоўвайце порт USB2.
4.6 Падключыце абсталяванне
Каб мець магчымасць запускаць праект NanoLib, падключыце сумяшчальны кантролер Nanotec да ПК з дапамогай адаптара. 1. Прыдатным кабелем падключыце адаптар да кантролера. 2. Падключыце адаптар да ПК у адпаведнасці з інструкцыяй адаптара. 3. Уключыце кантролер з дапамогай падыходнага крыніцы харчавання. 4. Пры неабходнасці змяніце налады сувязі кантролера Nanotec, як паказана ў кіраўніцтве па прадукту.
4.7 Загрузіце NanoLib
Каб пачаць з простых і хуткіх асноў, вы можаце (але не павінны) скарыстацца нашым эксampпраект. 1. У залежнасці ад вашага рэгіёна: спампуйце NanoLib з нашага webсайт для EMEA / APAC або АМЕРЫКІ. 2. Распакуйце пакет files / folders і выберыце адзін варыянт: Для хуткіх і простых асноў: гл. Запуск exampпраект. Для пашыранай налады ў Windows: Гл. Стварэнне ўласнага праекта Windows. Для пашыранай налады ў Linux: Гл. Стварэнне ўласнага праекта Linux.
Версія: doc 1.4.2 / NanoLib 1.3.0
9
Пачынаючы эксampпраект
З належным чынам загружаным NanoLib, example project паказвае выкарыстанне NanoLib з кантролерам Nanotec. Заўвага: для кожнага кроку каментарыі ў прадастаўленым прыкладзеample код тлумачыць выкарыстоўваныя функцыі. БылыampПраект складаецца з: `*_functions_exampле.*' files, якія змяшчаюць рэалізацыю функцый інтэрфейсу NanoLib `*_callback_exampле.*' files, якія змяшчаюць рэалізацыі для розных зваротных выклікаў (сканаванне, дадзеныя і
запіс) `menu_*.*' file, які змяшчае логіку меню і код Exampле.* file, якая з'яўляецца галоўнай праграмай, якая стварае меню і ініцыялізуе ўсе выкарыстоўваныя параметры Sampler_exampле.* file, які змяшчае эксample рэалізацыя для sampлер выкарыстання. Вы можаце знайсці больш эксampфайлы, з некаторымі камандамі руху для розных рэжымаў працы, у базе ведаў на nanotec.com. Усе можна выкарыстоўваць у Windows або Linux.
У Windows з Visual Studio 1. Адкрыйце Exampле.слн file. 2. Адкрыйце выклample.cpp. 3. Скампілюйце і запусціце exampкод.
У Linux праз Bash 1. Распакуйце зыходны код file, перайдзіце да тэчкі з распакаваным змесцівам. Асноўны file для эксampле ёсць
example.cpp. 2. У bash выклічце:
а. «sudo make install», каб скапіяваць агульныя аб'екты і выклікаць ldconfig. б. «make all» для стварэння выкананага файла тэсту. 3. Папка bin змяшчае выкананы файл example file. З дапамогай bash: перайдзіце ў тэчку вываду і ўвядзіце ./exampле. Калі памылак не адбываецца, вашы агульныя аб'екты ўсталяваны належным чынам і ваша бібліятэка гатовая да выкарыстання. Калі памылка чытаецца ./example: памылка пры загрузцы агульных бібліятэк: libnanolib.so: немагчыма адкрыць агульны аб'ект file: Няма такога file або каталог, усталяванне агульных аб'ектаў не атрымалася. У гэтым выпадку выканайце наступныя дзеянні. 4. Стварыце новую тэчку ў /usr/local/lib (патрабуюцца правы адміністратара). У bash, такім чынам, увядзіце:
sudo mkdir /usr/local/lib/nanotec
5. Скапіруйце ўсе агульныя аб'екты з zip fileтэчка lib:
усталяваць ./lib/*.so /usr/local/lib/nanotec/
6. Праверце змесціва мэтавай тэчкі з дапамогай:
ls -al /usr/local/lib/nanotec/
Ён павінен пералічыць агульны аб'ект files з тэчкі lib. 7. Запусціце ldconfig у гэтай тэчцы:
sudo ldconfig /usr/local/lib/nanotec/
Былыample рэалізаваны як дадатак CLI і забяспечвае інтэрфейс меню. Пункты меню з'яўляюцца кантэкстнымі і будуць уключаны або адключаны ў залежнасці ад стану кантэксту. Яны прапануюць вам магчымасць выбраць і выканаць розныя бібліятэчныя функцыі ў адпаведнасці з тыповым працоўным працэсам працы з кантролерам: 1. Праверце ПК на наяўнасць падлучанага абсталявання (адаптараў) і пералічыце іх. 2. Устанавіце злучэнне з адаптарам. 3. Сканіруйце шыну на наяўнасць падлучаных прылад кантролера. 4. Падключыцеся да прылады.
Версія: doc 1.4.2 / NanoLib 1.3.0
10
5 Пачынаючы эксampпраект
5. Праверце адну або некалькі функцый бібліятэкі: чытанне/запіс з/у слоўнік аб'ектаў кантролера, абнаўленне ўбудаванага праграмнага забеспячэння, загрузка і запуск праграмы NanoJ, запуск рухавіка і яго налада, канфігурацыя і выкарыстанне запісаўampлер.
6. Зачыніце злучэнне спачатку з прыладай, затым з адаптарам.
Версія: doc 1.4.2 / NanoLib 1.3.0
11
Стварэнне ўласнага праекта Windows
Стварыце, скампілюйце і запусціце свой уласны праект Windows для выкарыстання NanoLib.
6.1 Імпарт NanoLib
Імпартаваць загаловак NanoLib files і бібліятэкі праз MS Visual Studio.
1. Адкрыйце Visual Studio. 2. Праз Стварыць новы праект > Кансольнае прыкладанне C++ > Далей: Выберыце тып праекта. 3. Назавіце свой праект (тут: NanolibTest), каб стварыць папку праекта ў Правадыру рашэнняў. 4. Абярыце Гатова. 5. Адчыніце вокны file Правадыр і перайдзіце да новай створанай тэчцы праекта. 6. Стварыце дзве новыя тэчкі, inc і lib. 7. Адкрыйце тэчку пакета NanoLib. 8. Адтуль: Скапіруйце загаловак files з тэчкі include у тэчку вашага праекта inc і ўсе .lib і .dll
files у вашу новую тэчку праекта lib. 9. Праверце належную структуру папкі праекта, напрыкладampль:
тэчка ect для належнай структуры:
. 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 Наладзьце свой праект
Каб наладзіць праекты NanoLib, выкарыстоўвайце Правадыр рашэнняў у MS Visual Studio. Заўвага: для правільнай працы NanoLib выберыце канфігурацыю выпуску (не адладкі!) у наладах праекта Visual C++; затым пабудуйце і звяжыце праект з асяроддзем выканання VC распаўсюджваемых C++ [2022].
1. У Правадыру рашэнняў: перайдзіце ў тэчку вашага праекта (тут: NanolibTest). 2. Пстрыкніце папку, каб адкрыць кантэкстнае меню. 3. Абярыце Уласцівасці. 4. Актывуйце Усе канфігурацыі і Усе платформы. 5. Абярыце C/C++ і перайдзіце да дадатковых уключаных каталогаў. 6. Устаўце: $(ProjectDir)Nanolib/includes;%(AdditionalIncludeDirectories) 7. Выберыце Linker і перайдзіце да дадатковых каталогаў бібліятэкі. 8. Устаўце: $(ProjectDir)Nanolib;%(AdditionalLibraryDirectories) 9. Пашырыце Linker і абярыце Input. 10.Перайдзіце ў Дадатковыя залежнасці і ўстаўце: nanolib.lib;%(AdditionalDependencies) 11.Пацвердзіце праз OK.
Версія: doc 1.4.2 / NanoLib 1.3.0
12
6 Стварэнне ўласнага праекта Windows
12. Перайдзіце да Канфігурацыі > C++ > Мова > Стандарт мовы > Стандарт ISO C++17 і ўсталюйце стандарт мовы C++17 (/std:c++17).
6.3 Стварыце свой праект
Стварыце свой праект NanoLib у MS Visual Studio. 1. Адкрыйце асноўны *.cpp file (тут: nanolib_example.cpp) і пры неабходнасці адрэдагуйце код. 2. Абярыце Зборка > Дыспетчар канфігурацыі. 3. Змяніце актыўныя платформы рашэнняў на x64. 4. Пацвердзіце праз «Зачыніць». 5. Выберыце Пабудаваць > Пабудаваць рашэнне. 6. Няма памылкі? Праверце, ці належным чынам паведамляе ваш вынік кампіляцыі:
1>—— Ачыстка пачата: Праект: NanolibTest, Канфігурацыя: Debug x64 —–========== Ачыстка: 1 паспяхова, 0 няўдала, 0 прапушчана ===========
Версія: doc 1.4.2 / NanoLib 1.3.0
13
7 Стварэнне ўласнага праекта Linux
7 Стварэнне ўласнага праекта Linux
Стварыце, скампілюйце і запусціце свой уласны праект Linux для выкарыстання NanoLib. 1. У распакаваным усталявальным камплекце NanoLib: Адкрыйце /nanotec_nanolib. 2. Знайдзіце ўсе агульныя аб'екты ў tar.gz file. 3. Выберыце адзін варыянт: усталюйце кожную бібліятэку альбо з Makefile або ўручную.
7.1 Усталюйце агульныя аб'екты з дапамогай Makefile
Выкарыстоўвайце Makefile з Linux Bash для аўтаматычнай устаноўкі ўсіх стандартных *.so fileс. 1. Праз Bash: перайдзіце ў тэчку, якая змяшчае makefile. 2. Скапіруйце агульныя аб'екты праз:
sudo make install 3. Пацвердзіце праз:
ldconfig
7.2 Усталюйце агульныя аб'екты ўручную
Выкарыстоўвайце Bash, каб усталяваць усе *.so files NanoLib ўручную. 1. Праз Bash: Стварыце новую тэчку ў /usr/local/lib. 2. Патрэбныя правы адміністратара! Тып:
sudo mkdir /usr/local/lib/nanotec 3. Перайдзіце ў папку з распакаваным усталявальным пакетам. 4. Скапіруйце ўсе агульныя аб'екты з папкі lib праз:
усталяваць ./nanotec_nanolib/lib/*.so /usr/local/lib/nanotec/ 5. Праверце змесціва мэтавай папкі праз:
ls -al /usr/local/lib/nanotec/ 6. Праверце, ці ёсць у спісе ўсе агульныя аб'екты з папкі lib. 7. Запусціце ldconfig у гэтай тэчцы праз:
sudo ldconfig /usr/local/lib/nanotec/
7.3 Стварыце свой праект
З усталяванымі агульнымі аб'ектамі: стварыце новы праект для Linux NanoLib. 1. Праз Bash: Стварыце новую тэчку праекта (тут: NanoLibTest) праз:
mkdir NanoLibTest cd NanoLibTest
2. Скапіруйце загаловак files у тэчку ўключэння (тут: inc) праз: mkdir inc cp / FILE IS>/nanotec_nanolib/inc/*.hpp inc
3. Стварыце асноўную file (NanoLibTest.cpp) праз: #include “accessor_factory.hpp” #include
Версія: doc 1.4.2 / NanoLib 1.3.0
14
7 Стварэнне ўласнага праекта Linux
int main(){nlc::NanoLibAccessor *accessor = getNanoLibAccessor();
nlc::ResultBusHwIds вынік = сродак доступу->listAvailableBusHardware();
if(result.hasError()) { std::cout << result.getError() << std::endl; }
else{ std::cout << «Поспех» << std::endl; }
выдаліць аксэсор; вяртанне 0; }
4. Праверце належную структуру папкі праекта:

. NanoLibTest
inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result.hpp NanoLibTest.cpp
7.4 Скампілюйце і пратэстуйце свой праект
Падрыхтуйце свой Linux NanoLib да выкарыстання праз Bash.
1. Праз Bash: Скампілюйце асноўны file праз:
g++ -Wall -Wextra -pedantic -I./inc -c NanoLibTest.cpp -o NanoLibTest
2. Злучыце выкананы файл праз:
g++ -Wall -Wextra -pedantic -I./inc -o тэст NanoLibTest.o L/usr/local/lib/nanotec -lnanolib -ldl
3. Запусціце тэставую праграму праз:
./тэст
4. Праверце, ці належным чынам паведамляе ваш Bash:
поспех
Версія: doc 1.4.2 / NanoLib 1.3.0
15
8 Спасылка на класы / функцыі
8 Спасылка на класы / функцыі
Знайдзіце тут спіс класаў карыстальніцкага інтэрфейсу NanoLib і іх функцый-членаў. Тыповае апісанне функцыі ўключае ў сябе кароткае ўвядзенне, азначэнне функцыі і спіс параметраў / вяртання:
ExampleFunction () Коратка паведамляе, што робіць функцыя.
віртуальная пустата nlc::NanoLibAccessor::ExampleFunction (Param_a const & param_a, Param_b const & param_B)
Параметры param_a param_b
Вяртае ResultVoid
Дадатковы каментар пры неабходнасці. Дадатковы каментар пры неабходнасці.
8.1 NanoLibAccessor
Клас інтэрфейсу, які выкарыстоўваецца ў якасці кропкі ўваходу ў NanoLib. Тыповы працоўны працэс выглядае так:
1. Пачніце са сканавання абсталявання з дапамогай NanoLibAccessor.listAvailableBusHardware (). 2. Усталюйце параметры сувязі з дапамогай BusHardwareOptions (). 3. Адкрыйце апаратнае злучэнне з NanoLibAccessor.openBusHardwareWithProtocol (). 4. Сканіруйце шыну на наяўнасць падлучаных прылад з дапамогай NanoLibAccessor.scanDevices (). 5. Дадайце прыладу з NanoLibAccessor.addDevice (). 6. Падключыцеся да прылады з дапамогай NanoLibAccessor.connectDevice (). 7. Пасля завяршэння аперацыі адключыце прыладу з дапамогай NanoLibAccessor.disconnectDevice (). 8. Выдаліце прыладу з дапамогай NanoLibAccessor.removeDevice (). 9. Зачыніце апаратнае злучэнне з дапамогай NanoLibAccessor.closeBusHardware ().
NanoLibAccessor мае наступныя агульнадаступныя функцыі члена:
listAvailableBusHardware () Выкарыстоўвайце гэтую функцыю, каб пералічыць даступнае абсталяванне палявой шыны.
віртуальны ResultBusHwIds nlc::NanoLibAccessor::listAvailableBusHardware ()
Вяртае ResultBusHwIds
Дастаўляе масіў ID fieldbus.
openBusHardwareWithProtocol () Выкарыстоўвайце гэту функцыю для падлучэння абсталявання шыны.
віртуальны ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (BusHardwareId const & busHwId, BusHardwareOptions const & busHwOpt)
Параметры busHwId busHwOpt
Вяртае ResultVoid
Вызначае палявую шыну для адкрыцця. Вызначае параметры адкрыцця палявой шыны. Пацвярджае, што запушчана функцыя void.
isBusHardwareOpen () Выкарыстоўвайце гэту функцыю, каб праверыць, ці адкрыта ваша апаратнае злучэнне палявой шыны.
віртуальны ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (канстанта BusHardwareId & busHwId, канстанта BusHardwareOptions & busHwOpt)
Версія: doc 1.4.2 / NanoLib 1.3.0
16
8 Спасылка на класы / функцыі
Параметры BusHardwareId Вяртае ісціну
ілжывы
Вызначае кожную палявую шыну для адкрыцця. Абсталяванне адкрыта. Абсталяванне закрыта.
getProtocolSpecificAccessor () Выкарыстоўвайце гэту функцыю, каб атрымаць аб'ект доступу да канкрэтнага пратаколу.
віртуальны ResultVoid nlc::NanoLibAccessor::getProtocolSpecificAccessor (BusHardwareId const & busHwId)
Параметры busHwId Вяртае ResultVoid
Вызначае палявую шыну, для якой трэба атрымаць сродак доступу. Пацвярджае, што запушчана функцыя void.
getProfinetDCP () Выкарыстоўвайце гэтую функцыю, каб вярнуць спасылку на інтэрфейс Profinet DCP.
віртуальны ProfinetDCP і getProfinetDCP ()
Вяртае ProfinetDCP
атрымацьSamplerInterface () Выкарыстоўвайце гэтую функцыю, каб атрымаць спасылку на sampінтэрфейс ler.
віртуальны СamplerInterface & getSamplerInterface ()
Вяртаецца СamplerInterface
Адносіцца да сampклас інтэрфейсу ler.
setBusState () Выкарыстоўвайце гэтую функцыю, каб усталяваць спецыфічны для пратакола шыны стан.
віртуальны ResultVoid nlc::NanoLibAccessor::setBusState (канстанта BusHardwareId & busHwId, канстанта std::string & стан)
Параметры стану busHwId
Вяртае ResultVoid
Вызначае палявую шыну для адкрыцця. Прызначае спецыфічны для шыны стан у якасці радковага значэння. Пацвярджае, што запушчана функцыя void.
scanDevices () Выкарыстоўвайце гэтую функцыю для пошуку прылад у сетцы.
virtual ResultDeviceIds nlc::NanoLibAccessor::scanDevices (const BusHardwareId & busHwId, NlcScanBusCallback* зваротны выклік)
Параметры зваротнага выкліку busHwId
Вяртае ResultDeviceIds IOError
Вызначае палявую шыну для сканавання. Трасіроўшчык прагрэсу NlcScanBusCallback. Дастаўляе масіў ідэнтыфікатараў прылады. Паведамляе, што прылада не знойдзена.
Версія: doc 1.4.2 / NanoLib 1.3.0
17
8 Спасылка на класы / функцыі
addDevice ()
Выкарыстоўвайце гэту функцыю, каб дадаць прыладу шыны, апісаную deviceId, ва ўнутраны спіс прылад NanoLib і вярнуць для яе deviceHandle.
віртуальны ResultDeviceHandle nlc::NanoLibAccessor::addDevice (DeviceId const & deviceId)
Параметры deviceId Вяртае ResultDeviceHandle
Вызначае прыладу для дадання ў спіс. Дастаўляе ручку прылады.
connectDevice () Выкарыстоўвайце гэтую функцыю для падлучэння прылады праз deviceHandle.
віртуальны ResultVoid nlc::NanoLibAccessor::connectDevice (DeviceHandle const deviceHandle)
Параметры deviceHandle Вяртае ResultVoid
Памылка IO
Вызначае, да якой шыны падключаецца NanoLib. Пацвярджае, што запушчана функцыя void. Паведамляе, што прылада не знойдзена.
getDeviceName () Выкарыстоўвайце гэтую функцыю, каб атрымаць назву прылады па deviceHandle.
віртуальны ResultString nlc::NanoLibAccessor::getDeviceName (DeviceHandle const deviceHandle)
Параметры deviceHandle Вяртае ResultString
Вызначае, для якой прылады шыны NanoLib атрымала назву. Дастаўляе імёны прылад у выглядзе радка.
getDeviceProductCode () Выкарыстоўвайце гэтую функцыю, каб атрымаць код прадукту прылады па deviceHandle.
віртуальны ResultInt nlc::NanoLibAccessor::getDeviceProductCode (DeviceHandle канст deviceHandle)
Параметры deviceHandle Вяртае ResultInt
Вызначае, для якой прылады шыны NanoLib атрымлівае код прадукту. Дастаўляе коды прадуктаў у выглядзе цэлага ліку.
getDeviceVendorId () Выкарыстоўвайце гэтую функцыю, каб атрымаць ідэнтыфікатар пастаўшчыка прылады па deviceHandle.
віртуальны ResultInt nlc::NanoLibAccessor::getDeviceVendorId (DeviceHandle const deviceHandle)
Параметры deviceHandle Вяртае ResultInt
Рэсурс недаступны
Вызначае, для якой прылады шыны NanoLib атрымлівае ідэнтыфікатар пастаўшчыка. Дастаўляе ідэнтыфікатары пастаўшчыка ў выглядзе цэлага ліку. Паведамляе, што дадзеных не знойдзена.
Версія: doc 1.4.2 / NanoLib 1.3.0
18
8 Спасылка на класы / функцыі
getDeviceId () Выкарыстоўвайце гэтую функцыю, каб атрымаць ідэнтыфікатар пэўнай прылады з унутранага спісу NanoLib.
віртуальны ResultDeviceId nlc::NanoLibAccessor::getDeviceId (DeviceHandle const deviceHandle)
Параметры deviceHandle Вяртае ResultDeviceId
Вызначае, для якой шыны NanoLib атрымлівае ідэнтыфікатар прылады. Дастаўляе ідэнтыфікатар прылады.
getDeviceIds () Выкарыстоўвайце гэтую функцыю, каб атрымаць ідэнтыфікатары ўсіх прылад з унутранага спісу NanoLib.
віртуальныя ResultDeviceIds nlc::NanoLibAccessor::getDeviceIds ()
Вяртае ResultDeviceIds
Дастаўляе спіс ідэнтыфікатараў прылад.
getDeviceUid () Выкарыстоўвайце гэту функцыю, каб атрымаць унікальны ідэнтыфікатар прылады (96 біт / 12 байт) па deviceHandle.
віртуальны ResultArrayByte nlc::NanoLibAccessor::getDeviceUid (DeviceHandle канст deviceHandle)
Параметры deviceHandle Вяртае ResultArrayByte
Рэсурс недаступны
Вызначае, для якой прылады шыны NanoLib атрымлівае унікальны ідэнтыфікатар. Дастаўляе унікальныя ідэнтыфікатары ў выглядзе масіва байтаў. Паведамляе, што дадзеных не знойдзена.
getDeviceSerialNumber () Выкарыстоўвайце гэтую функцыю, каб атрымаць серыйны нумар прылады па deviceHandle.
віртуальны ResultString NanolibAccessor::getDeviceSerialNumber (DeviceHandle const deviceHandle)
Параметры deviceHandle Вяртае ResultString
Рэсурс недаступны
Вызначае, для якой шыны NanoLib атрымлівае серыйны нумар. Выдае серыйныя нумары ў выглядзе радка. Паведамляе, што дадзеных не знойдзена.
getDeviceHardwareGroup () Выкарыстоўвайце гэту функцыю, каб атрымаць апаратную групу прылады шыны па deviceHandle.
віртуальны ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareGroup (DeviceHandle const deviceHandle)
Параметры deviceHandle Вяртае ResultInt
Вызначае, для якой прылады шыны NanoLib атрымлівае апаратную групу.
Дастаўляе апаратныя групы ў выглядзе цэлага ліку.
getDeviceHardwareVersion () Выкарыстоўвайце гэту функцыю, каб атрымаць версію апаратнага забеспячэння прылады шыны па deviceHandle.
віртуальны ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareVersion (DeviceHandle const deviceHandle)
Версія: doc 1.4.2 / NanoLib 1.3.0
19
8 Спасылка на класы / функцыі
Параметры deviceHandle
Вяртае
ResultString ResourceUnavailable
Вызначае, для якой прылады шыны NanoLib атрымлівае апаратную версію. Дастаўляе імёны прылад у выглядзе радка. Паведамляе, што дадзеных не знойдзена.
getDeviceFirmwareBuildId () Выкарыстоўвайце гэту функцыю, каб атрымаць ідэнтыфікатар зборкі прашыўкі прылады шыны па deviceHandle.
віртуальны ResultDeviceId nlc::NanoLibAccessor::getDeviceFirmwareBuildId (DeviceHandle const deviceHandle)
Параметры deviceHandle Вяртае ResultString
Вызначае, для якой прылады шыны NanoLib атрымлівае ідэнтыфікатар зборкі прашыўкі.
Дастаўляе імёны прылад у выглядзе радка.
getDeviceBootloaderVersion () Выкарыстоўвайце гэту функцыю, каб атрымаць версію загрузніка прылады шыны па deviceHandle.
віртуальны ResultInt nlc::NanoLibAccessor::getDeviceBootloaderVersion (DeviceHandle const deviceHandle)
Параметры deviceHandle
Вяртае
ResultInt ResourceUnavailable
Вызначае, для якой прылады шыны NanoLib атрымлівае версію загрузніка. Дастаўляе версіі загрузніка ў выглядзе цэлага ліку. Паведамляе, што дадзеных не знойдзена.
getDeviceBootloaderBuildId () Выкарыстоўвайце гэту функцыю, каб атрымаць ідэнтыфікатар зборкі загрузніка прылады шыны па deviceHandle.
віртуальны ResultDeviceId nlc::NanoLibAccessor:: (DeviceHandle const deviceHandle)
Параметры deviceHandle Вяртае ResultString
Вызначае, для якой прылады шыны NanoLib атрымлівае ідэнтыфікатар зборкі загрузніка.
Дастаўляе імёны прылад у выглядзе радка.
rebootDevice () Выкарыстоўвайце гэтую функцыю, каб перазагрузіць прыладу з дапамогай deviceHandle.
віртуальны ResultVoid nlc::NanoLibAccessor::rebootDevice (канстанцыя DeviceHandle deviceHandle)
Параметры deviceHandle Вяртае ResultVoid
Вызначае палявую шыну для перазагрузкі. Пацвярджае, што запушчана функцыя void.
getDeviceState () Выкарыстоўвайце гэту функцыю, каб атрымаць спецыфічны стан пратаколу прылады.
віртуальны ResultString nlc::NanoLibAccessor::getDeviceState (DeviceHandle канст deviceHandle)
Параметры deviceHandle
Вызначае, для якой прылады шыны NanoLib атрымлівае стан.
Версія: doc 1.4.2 / NanoLib 1.3.0
20
8 Спасылка на класы / функцыі
Вяртае ResultString
Дастаўляе імёны прылад у выглядзе радка.
setDeviceState () Выкарыстоўвайце гэту функцыю, каб задаць спецыфічны стан пратаколу прылады.
віртуальны ResultVoid nlc::NanoLibAccessor::setDeviceState (const DeviceHandle deviceHandle, const std::string & state)
Параметры стану прыладыHandle
Вяртае ResultVoid
Вызначае, для якой прылады шыны NanoLib усталёўвае стан. Прызначае спецыфічны для шыны стан у якасці радковага значэння. Пацвярджае, што запушчана функцыя void.
getConnectionState ()
Выкарыстоўвайце гэту функцыю, каб атрымаць апошні вядомы стан злучэння пэўнай прылады па deviceHandle (= Адключана, Падключана, ConnectedBootloader)
віртуальны ResultConnectionState nlc::NanoLibAccessor::getConnectionState (DeviceHandle const deviceHandle)
Параметры deviceHandle Вяртае ResultConnectionState
Вызначае, для якой прылады шыны NanoLib атрымлівае стан злучэння.
Забяспечвае стан злучэння (= Адключана, Падключана, Падключаны загрузнік).
праверыцьConnectionState ()
Толькі калі апошні вядомы стан не быў Адключаны: выкарыстоўвайце гэту функцыю, каб праверыць і, магчыма, абнавіць стан злучэння пэўнай прылады з дапамогай deviceHandle і тэставання некалькіх спецыфічных для рэжыму аперацый.
віртуальны ResultConnectionState nlc::NanoLibAccessor::checkConnectionState (DeviceHandle const deviceHandle)
Параметры deviceHandle Вяртае ResultConnectionState
Вызначае, для якой прылады шыны NanoLib правярае стан злучэння.
Забяспечвае стан злучэння (= не адключана).
assignObjectDictionary () Выкарыстоўвайце гэтую ручную функцыю, каб самастойна прызначыць слоўнік аб'ектаў (OD) для deviceHandle.
віртуальны ResultObjectDictionary nlc::NanoLibAccessor::assignObjectDictionary (DeviceHandle const deviceHandle, ObjectDictionary const & objectDictionary)
Параметры deviceHandle objectDictionary
Вяртае ResultObjectDictionary
Вызначае, якой прыладзе шыны NanoLib прызначае OD. Паказвае ўласцівасці слоўніка аб'ектаў.
autoAssignObjectDictionary ()
Выкарыстоўвайце гэты аўтаматызм, каб дазволіць NanoLib прызначыць слоўнік аб'ектаў (OD) для deviceHandle. Знайшоўшы і загрузіўшы прыдатны OD, NanoLib аўтаматычна прызначае яго прыладзе. Заўвага: калі сумяшчальны OD ужо загружаны ў бібліятэцы аб'ектаў, NanoLib будзе аўтаматычна выкарыстоўваць яго без сканавання прадстаўленага каталога.
віртуальны ResultObjectDictionary nlc::NanoLibAccessor::autoAssignObjectDictionary (DeviceHandle const deviceHandle, const std::string & dictionariesLocationPath)
Версія: doc 1.4.2 / NanoLib 1.3.0
21
8 Спасылка на класы / функцыі
Параметры deviceHandle
Вяртае
dictionariesLocationPath ResultObjectDictionary
Вызначае, для якой прылады шыны NanoLib будзе аўтаматычна шукаць прыдатныя OD. Вызначае шлях да каталога OD. Паказвае ўласцівасці слоўніка аб'ектаў.
getAssignedObjectDictionary ()
Выкарыстоўвайце гэту функцыю, каб атрымаць слоўнік аб'ектаў, прызначаны прыладзе з дапамогай deviceHandle.
віртуальны ResultObjectDictionary nlc::NanoLibAccessor::getAssignedObjectDictionary (DeviceHandle const прылада
ручка)
Параметры deviceHandle Вяртае ResultObjectDictionary
Вызначае, для якой прылады шыны NanoLib атрымлівае прызначаны OD. Паказвае ўласцівасці слоўніка аб'ектаў.
getObjectDictionaryLibrary () Гэтая функцыя вяртае спасылку на OdLibrary.
віртуальная OdLibrary& nlc::NanoLibAccessor::getObjectDictionaryLibrary ()
Вяртае OdLibrary&
Адкрывае ўсю бібліятэку OD і яе аб'ектныя слоўнікі.
setLoggingLevel () Выкарыстоўвайце гэтую функцыю, каб усталяваць неабходную дэталізацыю часопіса (і журнал file памер). Узровень па змаўчанні - інфармацыя.
virtual void nlc::NanoLibAccessor::setLoggingLevel (узровень LogLevel)
Узровень параметраў
Магчымыя наступныя дэталі часопіса:
0 = Трасіроўка 1 = Адладка 2 = Інфармацыя 3 = Папярэджанне 4 = Памылка 5 = Крытычная 6 = Выключана
Самы нізкі ўзровень (самы вялікі часопіс file); запісвае любыя магчымыя дэталі, а таксама праграмны запуск / прыпынак. Рэгіструе інфармацыю аб адладцы (= прамежкавыя вынікі, адпраўлены або атрыманы кантэнт і г.д.) Узровень па змаўчанні; запісвае інфармацыйныя паведамленні. Рэгіструе праблемы, якія ўзніклі, але не спыняюць бягучы алгарытм. Журналы проста сур'ёзныя праблемы, якія спынілі алгарытм. Самы высокі ўзровень (самае маленькае бервяно file); уключае выхад з сістэмы; няма далейшага часопіса наогул. Увогуле без высечкі.
setLoggingCallback ()
Выкарыстоўвайце гэту функцыю, каб усталяваць паказальнік зваротнага выкліку запісу і модуль часопіса (= бібліятэка) для гэтага зваротнага выкліку (не для самога рэгістратара).
virtual void nlc::NanoLibAccessor::setLoggingCallback (NlcLoggingCallback* зваротны выклік, const nlc::LogModule & logModule)
Параметры *callback logModule
Усталёўвае паказальнік зваротнага выкліку. Наладжвае зваротны выклік (не рэгістратар!) для вашай бібліятэкі.
0 = NanolibCore 1 = NanolibCANopen 2 = NanolibModbus 3 = NanolibEtherCAT
Актывуе зваротны выклік толькі для ядра NanoLib. Актывуе зваротны выклік толькі для CANopen. Актывуе зваротны выклік толькі для Modbus. Актывуе зваротны выклік толькі для EtherCAT.
Версія: doc 1.4.2 / NanoLib 1.3.0
22
8 Спасылка на класы / функцыі
4 = NanolibRest 5 = NanolibUSB
Актывуе зваротны выклік толькі для REST. Актывуе зваротны выклік толькі праз USB.
unsetLoggingCallback () Выкарыстоўвайце гэту функцыю, каб адмяніць указальнік зваротнага выкліку рэгістрацыі.
віртуальная пустата nlc::NanoLibAccessor::unsetLoggingCallback ()
readNumber () Выкарыстоўвайце гэтую функцыю для чытання лікавага значэння са слоўніка аб'екта.
віртуальны ResultInt nlc::NanoLibAccessor::readNumber (const DeviceHandle deviceHandle, const OdIndex odIndex)
Параметры deviceHandle odIndex
Вяртае ResultInt
Вызначае, з якой шыны чытае NanoLib. Вызначае (суб-)індэкс для чытання. Выдае неінтэрпрэтаванае лікавае значэнне (можа быць са знакам, без знака, з фіксаванымі 16.16 бітамі).
readNumberArray () Выкарыстоўвайце гэтую функцыю для чытання лікавых масіваў з аб'ектнага слоўніка.
віртуальны ResultArrayInt nlc::NanoLibAccessor::readNumberArray (const DeviceHandle deviceHandle, const uint16_t index)
Індэкс параметраў deviceHandle
Вяртае ResultArrayInt
Вызначае, з якой шыны чытае NanoLib. Індэкс аб'екта масіва. Дастаўляе цэлы масіў.
readBytes () Выкарыстоўвайце гэтую функцыю для чытання адвольных байтаў (даных аб'екта дамена) са слоўніка аб'екта.
віртуальны ResultArrayByte nlc::NanoLibAccessor::readBytes (const DeviceHandle deviceHandle, const OdIndex odIndex)
Параметры deviceHandle odIndex
Вяртае ResultArrayByte
Вызначае, з якой шыны чытае NanoLib. Вызначае (суб-)індэкс для чытання. Дастаўляе масіў байтаў.
readString () Выкарыстоўвайце гэтую функцыю для чытання радкоў з каталога аб'ектаў.
віртуальны ResultString nlc::NanoLibAccessor::readString (канстанта DeviceHandle deviceHandle, канстанта OdIndex odIndex)
Параметры deviceHandle odIndex
Вяртае ResultString
Вызначае, з якой шыны чытае NanoLib. Вызначае (суб-)індэкс для чытання. Дастаўляе імёны прылад у выглядзе радка.
Версія: doc 1.4.2 / NanoLib 1.3.0
23
8 Спасылка на класы / функцыі
writeNumber () Выкарыстоўвайце гэтую функцыю для запісу лікавых значэнняў у каталог аб'ектаў.
virtual ResultVoid nlc::NanoLibAccessor::writeNumber (const DeviceHandle deviceHandle, int64_t value, const OdIndex odIndex, unsigned int bitLength)
Параметры deviceHandle значэнне odIndex bitLength
Вяртае ResultVoid
Вызначае, на якую прыладу шыны запісвае NanoLib. Неінтэрпрэтаванае значэнне (можа быць са знакам, без знака, выпраўленне 16.16). Вызначае (суб-)індэкс для чытання. Даўжыня ў бітах. Пацвярджае, што запушчана функцыя void.
writeBytes () Выкарыстоўвайце гэтую функцыю для запісу адвольных байтаў (даных аб'екта дамена) у каталог аб'ектаў.
віртуальны ResultVoid nlc::NanoLibAccessor::writeBytes (const DeviceHandle deviceHandle, const std::vector & дадзеныя, канстанта OdIndex odIndex)
Параметры deviceHandle data odIndex
Вяртае ResultVoid
Вызначае, на якую прыладу шыны запісвае NanoLib. Вектар байтаў / масіў. Вызначае (суб-)індэкс для чытання. Пацвярджае, што запушчана функцыя void.
загрузіць прашыўку ()
Выкарыстоўвайце гэту функцыю для абнаўлення прашыўкі кантролера.
віртуальны ResultVoid nlc::NanoLibAccessor::uploadFirmware (const DeviceHandle deviceHandle, const std::vector & fwData, NlcDataTransferCallback* зваротны выклік)
Параметры deviceHandle fwData NlcDataTransferCallback
Вяртае ResultVoid
Вызначае, якую прыладу шыны абнаўляе NanoLib. Масіў, які змяшчае даныя прашыўкі. Трасіроўшчык даных. Пацвярджае, што запушчана функцыя void.
загрузіць прашыўку зFile ()
Выкарыстоўвайце гэту функцыю, каб абнавіць убудаванае праграмнае забеспячэнне кантролера, загрузіўшы яго file.
віртуальны ResultVoid nlc::NanoLibAccessor::uploadFirmwareFromFile (const DeviceHandle deviceHandle, const std::string & absoluteFileШлях, NlcDataTransferCallback* зваротны выклік)
Абсалютныя параметры deviceHandleFileШлях NlcDataTransferCallback
Вяртае ResultVoid
Вызначае, якую прыладу шыны абнаўляе NanoLib. Шлях да file які змяшчае дадзеныя прашыўкі (std::string). Трасіроўшчык даных. Пацвярджае, што запушчана функцыя void.
Версія: doc 1.4.2 / NanoLib 1.3.0
24
8 Спасылка на класы / функцыі
uploadBootloader ()
Выкарыстоўвайце гэту функцыю для абнаўлення загрузчыка кантролера.
віртуальны ResultVoid nlc::NanoLibAccessor::uploadBootloader (const DeviceHandle deviceHandle, const std::vector & btData, NlcDataTransferCallback* зваротны выклік)
Параметры deviceHandle btData NlcDataTransferCallback
Вяртае ResultVoid
Вызначае, якую прыладу шыны абнаўляе NanoLib. Масіў, які змяшчае даныя загрузніка. Трасіроўшчык даных. Пацвярджае, што запушчана функцыя void.
uploadBootloaderFromFile ()
Выкарыстоўвайце гэту функцыю, каб абнавіць загрузчык вашага кантролера, загрузіўшы яго file.
віртуальны ResultVoid nlc::NanoLibAccessor::uploadBootloaderFromFile (const DeviceHandle deviceHandle, const std::string & bootloaderAbsoluteFileШлях, NlcDataTransferCallback* зваротны выклік)
Параметры deviceHandle bootloaderAbsoluteFileШлях NlcDataTransferCallback
Вяртае ResultVoid
Вызначае, якую прыладу шыны абнаўляе NanoLib. Шлях да file які змяшчае дадзеныя загрузніка (std::string). Трасіроўшчык даных. Пацвярджае, што запушчана функцыя void.
uploadBootloaderFirmware ()
Выкарыстоўвайце гэту функцыю для абнаўлення загрузчыка кантролера і прашыўкі.
віртуальны ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmware (const DeviceHandle deviceHandle, const std::vector & btData, const std::vector & fwData, NlcDataTransferCallback* зваротны выклік)
Параметры deviceHandle btData fwData NlcDataTransferCallback
Вяртае ResultVoid
Вызначае, якую прыладу шыны абнаўляе NanoLib. Масіў, які змяшчае даныя загрузніка. Масіў, які змяшчае даныя прашыўкі. Трасіроўшчык даных. Пацвярджае, што запушчана функцыя void.
uploadBootloaderFirmwareFromFile ()
Выкарыстоўвайце гэту функцыю, каб абнавіць загрузчык кантролера і ўбудаванае праграмнае забеспячэнне шляхам загрузкі files.
віртуальны ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmwareFromFile (const DeviceHandle deviceHandle, const std::string & bootloaderAbsoluteFileШлях, const std::string & absoluteFileШлях, NlcDataTransferCallback* зваротны выклік)
Параметры deviceHandle bootloaderAbsoluteFileАбсалютны шляхFileШлях NlcDataTransferCallback
Вяртае ResultVoid
Вызначае, якую прыладу шыны абнаўляе NanoLib. Шлях да file які змяшчае дадзеныя загрузніка (std::string). Шлях да file які змяшчае дадзеныя прашыўкі (uint8_t). Трасіроўшчык даных. Пацвярджае, што запушчана функцыя void.
Версія: doc 1.4.2 / NanoLib 1.3.0
25
8 Спасылка на класы / функцыі
загрузіцьNanoJ ()
Выкарыстоўвайце гэтую публічную функцыю, каб загрузіць праграму NanoJ на ваш кантролер.
віртуальны ResultVoid nlc::NanoLibAccessor::uploadNanoJ (DeviceHandle const deviceHandle, std::vector const & vmmData, NlcDataTransferCallback* зваротны выклік)
Параметры deviceHandle vmmData NlcDataTransferCallback
Вяртае ResultVoid
Вызначае, на якую прыладу шыны NanoLib загружае. Масіў, які змяшчае даныя NanoJ. Трасіроўшчык даных. Пацвярджае, што запушчана функцыя void.
загрузіцьNanoJFromFile ()
Выкарыстоўвайце гэту публічную функцыю, каб загрузіць праграму NanoJ на ваш кантролер, загрузіўшы файл file.
віртуальны ResultVoid nlc::NanoLibAccessor::uploadNanoJFromFile (const DeviceHandle deviceHandle, const std::string & absoluteFileШлях, NlcDataTransferCallback* зваротны выклік)
Абсалютныя параметры deviceHandleFileШлях NlcDataTransferCallback
Вяртае ResultVoid
Вызначае, на якую прыладу шыны NanoLib загружае. Шлях да file які змяшчае даныя NanoJ (std::string). Трасіроўшчык даных. Пацвярджае, што запушчана функцыя void.
disconnectDevice () Выкарыстоўвайце гэтую функцыю, каб адключыць вашу прыладу з дапамогай deviceHandle.
віртуальны ResultVoid nlc::NanoLibAccessor::disconnectDevice (DeviceHandle const deviceHandle)
Параметры deviceHandle Вяртае ResultVoid
Вызначае, ад якой шыны адключаецца NanoLib. Пацвярджае, што запушчана функцыя void.
removeDevice () Выкарыстоўвайце гэтую функцыю, каб выдаліць вашу прыладу з унутранага спісу прылад NanoLib.
віртуальны ResultVoid nlc::NanoLibAccessor::removeDevice (const DeviceHandle deviceHandle)
Параметры deviceHandle Вяртае ResultVoid
Вызначае, якую прыладу шыны выдаляе NanoLib. Пацвярджае, што запушчана функцыя void.
closeBusHardware () Выкарыстоўвайце гэтую функцыю, каб адключыцца ад апаратнага забеспячэння палявой шыны.
віртуальны ResultVoid nlc::NanoLibAccessor::closeBusHardware (BusHardwareId const & busHwId)
Параметры busHwId Вяртае ResultVoid
Вызначае палявую шыну, ад якой трэба адключыцца. Пацвярджае, што запушчана функцыя void.
Версія: doc 1.4.2 / NanoLib 1.3.0
26
8 Спасылка на класы / функцыі
8.2 BusHardwareId
Выкарыстоўвайце гэты клас для індывідуальнай ідэнтыфікацыі абсталявання шыны або для адрознення рознага абсталявання шыны адно ад аднаго. Гэты клас (без функцый усталявальніка, якія павінны быць нязменнымі з моманту стварэння) таксама змяшчае інфармацыю пра:
Апаратнае забеспячэнне (= імя адаптара, сеткавы адаптар і г.д.) Пратакол для выкарыстання (= Modbus TCP, CANopen і г.д.) Спецыфікатар апаратнага забеспячэння шыны (= імя паслядоўнага порта, зручнае для MAC імя
адрас і г.д.)
BusHardwareId () [1/3] Канструктар, які стварае новы аб'ект апаратнага ідэнтыфікатара шыны.
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_, std::string const & protocol_, std::string const & hardwareSpecifier_, std::string const & name_)
Параметры busHardware_ protocol_ hardwareSpecifier_ extraHardwareSpecifier_ name_
Тып абсталявання (= ZK-USB-CAN-1 і г.д.). Пратакол сувязі шыны (= CANopen і г.д.). Спецыфікатар абсталявання (= COM3 і г.д.). Дадатковы спецыфікатар апаратнага забеспячэння (напрыклад, інфармацыя пра месцазнаходжанне USB). Зразумелая назва (= Назва адаптара (порт) і г.д.).
BusHardwareId () [2/3] Канструктар, які стварае новы аб'ект апаратнага ідэнтыфікатара шыны з магчымасцю дадатковага спецыфікатара абсталявання.
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_, std::string const & protocol_, std::string const & hardwareSpecifier_, std::string const & extraHardwareSpecifier_, std::string const & name_)
Параметры busHardware_ protocol_ hardwareSpecifier_ extraHardwareSpecifier_ name_
Тып абсталявання (= ZK-USB-CAN-1 і г.д.). Пратакол сувязі шыны (= CANopen і г.д.). Спецыфікатар абсталявання (= COM3 і г.д.). Дадатковы спецыфікатар апаратнага забеспячэння (напрыклад, інфармацыя пра месцазнаходжанне USB). Зразумелая назва (= Назва адаптара (порт) і г.д.).
BusHardwareId () [3/3] Канструктар, які капіюе існуючы busHardwareId.
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)
Параметры busHardwareId
Называе апаратны ідэнтыфікатар шыны для капіявання.
роўна () Параўноўвае новы апаратны ідэнтыфікатар шыны з існуючымі.
bool nlc::BusHardwareId::роўна (BusHardwareId const & other) const
Параметры іншыя Вяртае ісціна
Яшчэ адзін аб'ект таго ж класа. Калі абодва роўныя ва ўсіх значэннях.
Версія: doc 1.4.2 / NanoLib 1.3.0
27
8 Спасылка на класы / функцыі
ілжывы
Калі значэнні адрозніваюцца.
getBusHardware () Счытвае апаратны радок шыны.
std::string nlc::BusHardwareId::getBusHardware () const
Вяртае радок
getHardwareSpecifier () Счытвае радок спецыфікатара абсталявання шыны (= назва сеткі і г.д.).
std::string nlc::BusHardwareId::getHardwareSpecifier () const
Вяртае радок
getExtraHardwareSpecifier () Счытвае радок спецыфікатара дадатковага абсталявання шыны (= MAC-адрас і г.д.).
std::string nlc::BusHardwareId::getExtraHardwareSpecifier () const
Вяртае радок
getName () Счытвае зручную назву абсталявання шыны.
std::string nlc::BusHardwareId::getName () const
Вяртае радок
getProtocol () Счытвае радок пратаколу шыны.
std::string nlc::BusHardwareId::getProtocol () const
Вяртае радок
toString () Вяртае апаратны ідэнтыфікатар шыны ў выглядзе радка.
std::string nlc::BusHardwareId::toString () const
Вяртае радок
8.3 BusHardwareOptions
Знайдзіце ў гэтым класе ў спісе радкоў ключ-значэнне ўсе параметры, неабходныя для адкрыцця абсталявання шыны.
Версія: doc 1.4.2 / NanoLib 1.3.0
28
8 Спасылка на класы / функцыі
BusHardwareOptions () [1/2] Стварае новы аб'ект апаратнага забеспячэння шыны.
nlc::BusHardwareOptions::BusHardwareOptions () Выкарыстоўвайце функцыю addOption (), каб дадаць пары ключ-значэнне.
BusHardwareOptions () [2/2] Стварае новы аб'ект апаратных опцый шыны з картай ключ-значэнне ўжо на месцы.
nlc::BusHardwareOptions::BusHardwareOptions (std::map канстанта і параметры)
Параметры параметраў
Карта з параметрамі працы шыны.
addOption () Стварае дадатковыя ключы і значэнні.
void nlc::BusHardwareOptions::addOption (std::string const & key, std::string const & value)
Ключавое значэнне параметраў
Example: BAUD_RATE_OPTIONS_NAME, гл. значэнні па змаўчанні bus_hw_options_
Example: BAUD_RATE_1000K, гл. bus_hw_options_defaults
роўна () Параўноўвае BusHardwareOptions з існуючымі.
bool nlc::BusHardwareOptions::роўна (BusHardwareOptions const & other) const
Параметры іншыя Вяртае ісціна
ілжывы
Яшчэ адзін аб'ект таго ж класа. Калі іншы аб'ект мае ўсе сапраўды такія ж параметры. Калі іншы аб'ект мае іншыя ключы або значэнні.
getOptions () Счытвае ўсе дададзеныя пары ключ-значэнне.
std::map nlc::BusHardwareOptions::getOptions () канст
Вяртае карту радкоў
toString () Вяртае ўсе ключы / значэнні ў выглядзе радка.
std::string nlc::BusHardwareId::toString () const
Вяртае радок
8.4 BusHwOptionsDefault
Гэты клас параметраў канфігурацыі па змаўчанні мае наступныя агульнадаступныя атрыбуты:
Версія: doc 1.4.2 / NanoLib 1.3.0
29
8 Спасылка на класы / функцыі
const CanBus const Serial const RESTfulBus const EtherCATBus
canBus = CanBus () serial = Serial () restfulBus = RESTfulBus() ethercatBus = EtherCATBus()
8.5 CanBaudRate
Структура, якая змяшчае хуткасць перадачы шыны CAN у наступных агульнадаступных атрыбутах:
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
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 = “50 20k” BAUD_RATE_20K = “10k” BAUD_RATE_10K = “5k” BAUD_RATE_5K = “XNUMXk”
8.6 CanBus
Клас параметраў канфігурацыі па змаўчанні з наступнымі публічнымі атрыбутамі:
const std::string const CanBaudRate const Ixxat
BAUD_RATE_OPTIONS_NAME = «хуткасць перадачы можа адаптар» baudRate = CanBaudRate () ixxat = Ixxat ()
8.7 CanOpenNmtService
Для службы NMT гэтая структура змяшчае станы CANopen NMT у выглядзе радковых значэнняў у наступных агульнадаступных атрыбутах:
const std::string const std::string const std::string const std::string const std::string
START = “START” STOP = “STOP” PRE_OPERATIONAL = “PRE_OPERATIONAL” RESET = “RESET” RESET_COMMUNICATION = “RESET_COMMUNICATION”
8.8 CanOpenNmtState
Гэтая структура змяшчае станы CANopen NMT у выглядзе радковых значэнняў у наступных агульнадаступных атрыбутах:
const std::string const std::string const std::string const std::string const std::string
STOPPED = “STOPPED” PRE_OPERATIONAL = “PRE_OPERATIONAL” OPERATIONAL = “OPERATIONAL” INITIALIZATION = “INITIALIZATION” UNKNOWN = “UNKNOWN”
8.9 Структура EtherCATBus
Гэтая структура змяшчае параметры канфігурацыі сувязі EtherCAT у наступных агульнадаступных атрыбутах:
Версія: doc 1.4.2 / NanoLib 1.3.0
30
8 Спасылка на класы / функцыі
const std::string NETWORK_FIRMWARE_STATE_OP- Стан сеткі разглядаецца як рэжым прашыўкі. Прымальна
TION_NAME = “Стан убудаванага ПЗ сеткі”
значэнні (па змаўчанні = 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- Тайм-аўт у мілісекундах для атрымання выключнай блакіроўкі на
TION_NAME = “Час чакання агульнай блакіроўкі”
сеткі (па змаўчанні = 500 мс).
const unsigned int DEFAULT_EXCLUSIVE_LOCK_ TIMEOUT = “500”
const std::string SHARED_LOCK_TIMEOUT_OPTION_ Тайм-аўт у мілісекундах для атрымання агульнай блакіроўкі
NAME = "Час чакання агульнай блакіроўкі"
сеткі (па змаўчанні = 250 мс).
const unsigned int DEFAULT_SHARED_LOCK_TIMEOUT = “250”
const std::string READ_TIMEOUT_OPTION_NAME = Тайм-аўт у мілісекундах для аперацыі чытання (па змаўчанні
«Тайм-аўт чытання»
= 700 мс).
const unsigned int DEFAULT_READ_TIMEOUT = “700”
const std::string WRITE_TIMEOUT_OPTION_NAME = Тайм-аўт у мілісекундах для аперацыі запісу (па змаўчанні
«Час чакання запісу»
= 200 мс).
const unsigned int DEFAULT_WRITE_TIMEOUT = “200”
const std::string READ_WRITE_ATTEMPTS_OPTION_ Максімальная колькасць спроб чытання або запісу (ненулявыя значэнні
NAME = «Спробы чытання/запісу»
толькі; па змаўчанні = 5).
const unsigned int DEFAULT_READ_WRITE_ATTEMPTS = “5”
const std::string CHANGE_NETWORK_STATE_ATTEMPTS_OPTION_NAME = “Спробы змяніць стан сеткі”
Максімальная колькасць спроб змяніць стан сеткі (толькі ненулявыя значэнні; па змаўчанні = 10).
const unsigned int DEFAULT_CHANGE_NETWORK_ STATE_ATTEMPTS = “10”
const std::string PDO_IO_ENABLED_OPTION_NAME Уключае або адключае апрацоўку PDO для лічбавага ўваходу /
= «PDO IO уключаны»
выхады (толькі «Ісціна» або «Хлусня»; па змаўчанні = «Ісціна»).
const std::string DEFAULT_PDO_IO_ENABLED = “Праўда”
8.10 Структура EtherCATState
Гэтая структура змяшчае падпарадкаваныя EtherCAT / станы сеткі ў выглядзе радковых значэнняў у наступных агульнадаступных атрыбутах. Заўвага: стан па змаўчанні пры ўключэнні - PRE_OPERATIONAL; NanoLib не можа забяспечыць надзейны «РАБОЧЫ» стан у аперацыйнай сістэме не ў рэжыме рэальнага часу:
const std::string const std::string const std::string const std::string const std::string const std::string
NONE = “НЯМА” INIT = “INIT” PRE_OPERATIONAL = “PRE_OPERATIONAL” BOOT = “BOOT” SAFE_OPERATIONAL = “SAFE_OPERATIONAL” OPERATIONAL = “OPERATIONAL”
Версія: doc 1.4.2 / NanoLib 1.3.0
31
8 Спасылка на класы / функцыі
8.11 Ixxat
Гэтая структура змяшчае ўсю інфармацыю для Ixxat usb-to-can у наступных агульнадаступных атрыбутах:
const std::string
ADAPTER_BUS_NUMBER_OPTIONS_NAME = “нумар шыны адаптара ixxat”
const IxxatAdapterBusNumber adapterBusNumber = IxxatAdapterBusNumber ()
8.12 IxxatAdapterBusNumber
Гэтая структура змяшчае нумар шыны для Ixxat usb-to-can у наступных агульнадаступных атрыбутах:
const std::string const std::string const std::string const std::string
BUS_NUMBER_0_DEFAULT = “0” BUS_NUMBER_1 = “1” BUS_NUMBER_2 = “2” BUS_NUMBER_3 = “3”
8.13 пік
Гэтая структура змяшчае ўсю інфармацыю для Peak usb-to-can у наступных агульнадаступных атрыбутах:
const std::string
ADAPTER_BUS_NUMBER_OPTIONS_NAME = “нумар пікавай шыны адаптара”
const PeakAdapterBusNumber adapterBusNumber = PeakAdapterBusNumber ()
8.14 PeakAdapterBusNumber
Гэтая структура змяшчае нумар шыны для Peak usb-to-can у наступных агульнадаступных атрыбутах:
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
BUS_NUMBER_1_DEFAULT = std::to_string (PCAN_USBBUS1) BUS_NUMBER_2 = std::to_string (PCAN_USBBUS2) BUS_NUMBER_3 = std::to_string (PCAN_USBBUS3) BUS_NUMBER_4 = std::to_string (PCAN_USBBUS4) BUS_NUMBER_5 = std::to_string (PCAN_USBBUS5) BUS_NUMBER_6 = std::to_string (PCAN_USBBUS6) BUS_NUMBER_7 = std::to_string (PCAN_USBBUS7) BUS_NUMBER_8 = std::to_string (PCAN_USBBUS8) BUS_NUMBER_9 = std::to_string (PCAN_USBBUS9) BUS_NUMBER_10 = std::to_string (PCAN_USBBUS10) BUS_NUMBER_11 = std::to_string (PCAN_USBBUS11) BUS_NUMBER_12 = std::to_string (PCAN_USBBUS12) BUS_NUMBER_13 = std::to_string (PCAN_USBBUS13) BUS_NUMBER_14 = std::to_string (PCAN_USBBUS14) BUS_NUMBER_15 = std::to_string (PCAN_USBBUS15) BUS_NUMBER_16 = std::to_string (PCAN_USBBUS16)
8.15 DeviceHandle
Гэты клас прадстаўляе дэскрыптар для кіравання прыладай на шыне і мае наступныя агульнадаступныя функцыі-члены.
DeviceHandle () DeviceHandle (дэскрыптар uint32_t)
Версія: doc 1.4.2 / NanoLib 1.3.0
32
8 Спасылка на класы / функцыі
роўна () Параўноўвае сябе з дадзеным дэскрыптарам прылады.
значэнне роўна (DeviceHandle const іншае) const (дэскрыптар uint32_t)
toString () Вяртае радковае прадстаўленне дэскрыптара прылады.
std::string toString () канст
get () Вяртае маркер прылады.
uint32_t атрымаць () канст
8.16 Ідэнтыфікатар прылады
Выкарыстоўвайце гэты клас (не змяняецца з моманту стварэння) для ідэнтыфікацыі і адрознення прылад на шыне:
Ідэнтыфікатар апаратнага адаптара
Ідэнтыфікатар прылады
Апісанне
Значэнне значэнняў ID / апісання прылады залежыць ад шыны. Напрыкладample, шына CAN можа выкарыстоўваць цэлы лік ID.
DeviceId () [1/3] Стварае новы аб'ект ID прылады.
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId_, unsigned int deviceId_, std::string const & description_)
Параметры busHardwareId_ deviceId_ description_
Ідэнтыфікатар аўтобуса. Індэкс; у залежнасці ад шыны (= ідэнтыфікатар вузла CANopen і г.д.). Апісанне (можа быць пустым); пры ўмове аўт.
DeviceId () [2/3] Стварае новы аб'ект ID прылады з пашыранымі параметрамі ID.
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId, unsigned int deviceId_, std::string const & description_ std::vector const & extraId_, std::string const & extraStringId_)
Параметры busHardwareId_ deviceId_ description_ extraId_ extraStringId_
Ідэнтыфікатар аўтобуса. Індэкс; у залежнасці ад шыны (= ідэнтыфікатар вузла CANopen і г.д.). Апісанне (можа быць пустым); пры ўмове аўт. Дадатковы ID (можа быць пустым); сэнс залежыць ад аўтобуса. Ідэнтыфікатар дадатковага радка (можа быць пустым); сэнс залежыць ад аўтобуса.
DeviceId () [3/3] Стварае копію аб'екта ID прылады.
nlc::DeviceId::DeviceId (DeviceId const &)
Версія: doc 1.4.2 / NanoLib 1.3.0
33
8 Спасылка на класы / функцыі
Параметры deviceId_
Ідэнтыфікатар прылады для капіявання.
роўна () Параўноўвае новыя аб'екты з існуючымі.
bool nlc::DeviceId::роўна (DeviceId const & other) const
Вяртае лагічнае значэнне
getBusHardwareId () Счытвае апаратны ідэнтыфікатар шыны.
BusHardwareId nlc::DeviceId::getBusHardwareId () const
Вяртае BusHardwareId
getDescription () Счытвае апісанне прылады (магчыма, не выкарыстоўваецца).
std::string nlc::DeviceId::getDescription () канст
Вяртае радок
getDeviceId () Счытвае ідэнтыфікатар прылады (магчыма, нявыкарыстаны).
unsigned int nlc::DeviceId::getDeviceId () канст
Вяртае unsigned int
toString () Вяртае аб'ект у выглядзе радка.
std::string nlc::DeviceId::toString () канст
Вяртае радок
getExtraId () Счытвае дадатковы ідэнтыфікатар прылады (можа не выкарыстоўвацца).
const std::vector &getExtraId () канст
Вектар вяртання
Вектар дадатковых дадатковых ID (можа быць пустым); сэнс залежыць ад аўтобуса.
getExtraStringId () Счытвае дадатковы ідэнтыфікатар радка прылады (можа не выкарыстоўвацца).
std::string getExtraStringId () канст
Версія: doc 1.4.2 / NanoLib 1.3.0
34
8 Спасылка на класы / функцыі
Вяртае радок
Ідэнтыфікатар дадатковага радка (можа быць пустым); сэнс залежыць ад аўтобуса.
8.17 LogLevel Converter
Гэты клас вяртае ваш узровень часопіса ў выглядзе радка. статычны std::string toString (nlc::LogLevel logLevel)
8.18 LogModule Converter
Гэты клас вяртае модулі часопіса setLoggingLevel () для вашай бібліятэкі ў выглядзе радка.
статычны std::string
toString (nlc::LogModule logModule)
статычны std::string toString (nlc::LogModule logModule)
8.19 ObjectDictionary
Гэты клас прадстаўляе аб'ектны слоўнік кантролера і мае наступныя агульнадаступныя функцыі-члены: getDeviceHandle ()
віртуальны ResultDeviceHandle getDeviceHandle () const Вяртае ResultDeviceHandle
getObject () virtual ResultObjectSubEntry getObject (OdIndex const odIndex) Вяртае ResultObjectSubEntry
getObjectEntry () віртуальны ResultObjectEntry getObjectEntry (індэкс uint16_t)
Вяртае ResultObjectEntry
Паведамляе аб уласцівасцях аб'екта.
getXmlFileІмя () віртуальны ResultString getXmlFileІмя () канст
Вяртае ResultString
Вяртае XML file імя ў выглядзе радка.
readNumber () virtual ResultInt readNumber (OdIndex const odIndex) Вяртае ResultInt
readNumberArray () віртуальны ResultArrayInt readNumberArray (індэкс канстанты uint16_t)
Версія: doc 1.4.2 / NanoLib 1.3.0
35
8 Спасылка на класы / функцыі
Вяртае ResultArrayInt readString ()
virtual ResultString readString (OdIndex const odIndex) Вяртае ResultString readBytes () virtual ResultArrayByte readBytes (OdIndex const odIndex) Вяртае ResultArrayByte writeNumber () virtual ResultVoid writeNumber (OdIndex const odIndex, const int64_t value) Вяртае ResultVoid writeBytes () віртуальны ResultVoid writeBytes (OdIndex const OdIndex, std::vector
const & data) Вяртае ResultVoid Спасылкі па тэме OdIndex
8.20 Увод аб'екта
Гэты клас уяўляе аб'ектны запіс слоўніка аб'ектаў, мае наступны статычны абаронены атрыбут і агульнадаступныя функцыі-члены:
статычны nlc::ObjectSubEntry invalidObject
getName () Счытвае імя аб'екта ў выглядзе радка.
віртуальны std::string getName () канст
getPrivate () Правярае, ці з'яўляецца аб'ект прыватным.
віртуальны бул getPrivate () канст
getIndex () Счытвае адрас індэкса аб'екта.
віртуальны uint16_t getIndex () канст
Версія: doc 1.4.2 / NanoLib 1.3.0
36
8 Спасылка на класы / функцыі
getDataType () Счытвае тып дадзеных аб'екта.
віртуальны nlc::ObjectEntryDataType getDataType () канст
getObjectCode () Счытвае аб'ектны код:
Null Deftype Defstruct Var Array Record
0x00 0x05 0x06 0x07 0x08 0x09
віртуальны nlc::ObjectCode getObjectCode () канст
getObjectSaveable () Правярае, ці можна захаваць аб'ект і яго катэгорыю (падрабязней глядзіце ў інструкцыі па прадукце): APPLICATION, COMMUNICATION, DRIVE, MISC_CONFIG, MODBUS_RTU, NO, TUNING, CUSTOMER, ETHERNET, CANOPEN, VERIFY1020, UNKNOWN_SAVEABLE_TYPE
віртуальны nlc::ObjectSaveable getObjectSaveable () канст
getMaxSubIndex () Счытвае колькасць субіндэксаў, якія падтрымліваюцца гэтым аб'ектам.
віртуальны uint8_t getMaxSubIndex () канст
getSubEntry () virtual nlc::ObjectSubEntry & getSubEntry (uint8_t subIndex)
Глядзіце таксама ObjectSubEntry.
8.21 ObjectSubEntry
Гэты клас прадстаўляе аб'ектны падзапіс (субіндэкс) аб'ектнага слоўніка і мае наступныя агульнадаступныя функцыі-члены:
getName () Счытвае імя аб'екта ў выглядзе радка.
віртуальны std::string getName () канст
getSubIndex () Счытвае адрас субіндэкса.
віртуальны uint8_t getSubIndex () канст
Версія: doc 1.4.2 / NanoLib 1.3.0
37
8 Спасылка на класы / функцыі
getDataType () Счытвае тып дадзеных аб'екта.
віртуальны nlc::ObjectEntryDataType getDataType () канст
getSdoAccess () Правярае, ці даступны падіндэкс праз SDO:
Толькі для чытання
1
Толькі запіс
2
Чытаць і пісаць
3
Няма доступу
0
віртуальны nlc::ObjectSdoAccessAttribute getSdoAccess () канст
getPdoAccess () Правярае, ці даступны субіндэкс праз PDO:
Tx
1
Rx
2
TxRx
3
няма
0
віртуальны nlc::ObjectPdoAccessAttribute getPdoAccess () канст
getBitLength () Правярае даўжыню субіндэкса.
віртуальны uint32_t getBitLength () канст
getDefaultValueAsNumeric () Счытвае значэнне субіндэкса па змаўчанні для лікавых тыпаў даных.
віртуальны ResultInt getDefaultValueAsNumeric (std::string const & key) const
getDefaultValueAsString () Счытвае значэнне субіндэкса па змаўчанні для радковых тыпаў даных.
віртуальны ResultString getDefaultValueAsString (std::string const & key) const
getDefaultValues () Счытвае значэнні субіндэкса па змаўчанні.
віртуальная std::map getDefaultValues () канст
Версія: doc 1.4.2 / NanoLib 1.3.0
38
8 Спасылка на класы / функцыі
readNumber () Счытвае лічбавае фактычнае значэнне субіндэкса.
віртуальны ResultInt readNumber () канст
readString () Счытвае фактычнае значэнне субіндэксу радка.
віртуальны ResultString readString () канст
readBytes () Счытвае фактычнае значэнне субіндэкса ў байтах.
віртуальны ResultArrayByte readBytes () канст
writeNumber () Запісвае лікавае значэнне ў падіндэкс.
віртуальны ResultVoid writeNumber (значэнне const int64_t) канст
writeBytes () Запісвае значэнне ў субіндэксе ў байтах.
віртуальны ResultVoid writeBytes (std::vector const & data) канст
8.22 OdIndex
Выкарыстоўвайце гэты клас (нязменны з моманту стварэння) для абгортвання і пошуку індэксаў / субіндэксаў каталогаў аб'ектаў. OD прылады мае да 65535 (0xFFFF) радкоў і 255 (0xFF) слупкоў; з прамежкамі паміж перарывістымі радамі. Для атрымання больш падрабязнай інфармацыі глядзіце стандарт CANopen і кіраўніцтва вашага прадукту.
OdIndex () Стварае новы аб'ект OdIndex.
nlc::OdIndex::OdIndex (індэкс uint16_t, субіндэкс uint8_t)
Субіндэкс індэкса параметраў
Ад 0 да 65535 (0xFFFF) укл. Ад 0 да 255 (0xFF) укл.
getIndex () Счытвае індэкс (ад 0x0000 да 0xFFFF).
uint16_t nlc::OdIndex::getIndex () канст
Вяртае uint16_t
getSubindex () Счытвае субіндэкс (ад 0x00 да 0xFF)
uint8_t nlc::OdIndex::getSubIndex () канст
Версія: doc 1.4.2 / NanoLib 1.3.0
39
8 Спасылка на класы / функцыі
Вяртае uint8_t
toString () Вяртае індэкс і субіндэкс у выглядзе радка. Радок па змаўчанні 0xIIII:0xSS чытаецца наступным чынам:
I = індэкс ад 0x0000 да 0xFFFF
S = субіндэкс ад 0x00 да 0xFF
std::string nlc::OdIndex::toString () канст
Вяртае 0xIIII:0xSS
Прадстаўленне радка па змаўчанні
8.23 OdLibrary
Выкарыстоўвайце гэты інтэрфейс праграмавання для стварэння асобнікаў класа ObjectDictionary з XML. З дапамогай assignObjectDictionary вы можаце прывязаць кожны асобнік да пэўнай прылады дзякуючы ўнікальна створанаму ідэнтыфікатару. Створаныя такім чынам экзэмпляры ObjectDictionary захоўваюцца ў аб'екце OdLibrary для доступу па індэксе. Клас ODLibrary загружае элементы ObjectDictionary з file або масіў, захоўвае іх і мае наступныя публічныя функцыі-члены:
getObjectDictionaryCount () віртуальны uint32_t getObjectDictionaryCount () канст
getObjectDictionary () віртуальны ResultObjectDictionary getObjectDictionary (uint32_t odIndex)
Вяртае ResultObjectDictionary
addObjectDictionaryFromFile ()
віртуальны ResultObjectDictionary addObjectDictionaryFromFile (std::string const & absoluteXmlFileшлях)
Вяртае ResultObjectDictionary
addObjectDictionary ()
віртуальны ResultObjectDictionary addObjectDictionary (std::vector const & odXmlData, const std::string &xmlFileШлях = std::string ())
Вяртае ResultObjectDictionary
8.24 OdTypesHelper
У дадатак да наступных агульнадаступных функцый-членаў гэты клас змяшчае карыстальніцкія тыпы даных. Заўвага: каб праверыць карыстальніцкія тыпы даных, знайдзіце клас пералічэння ObjectEntryDataType у od_types.hpp.
uintToObjectCode () Пераўтварае цэлыя лікі без знака ў аб'ектны код:
Null Deftype
0x00 0x05
Версія: doc 1.4.2 / NanoLib 1.3.0
40
8 Спасылка на класы / функцыі
Дэструкцыя запісу масіва Var
0x06 0x07 0x08 0x09
статычны ObjectCode uintToObjectCode (беззнакавы int objectCode)
isNumericDataType () Паведамляе, ці з'яўляецца тып дадзеных лікавым.
static bool isNumericDataType (ObjectEntryDataType dataType)
isDefstructIndex () Паведамляе, ці з'яўляецца аб'ект індэксам структуры вызначэння ці не.
статычны Bool isDefstructIndex (uint16_t typeNum)
isDeftypeIndex () Паведамляе, ці з'яўляецца аб'ект індэксам тыпу вызначэння ці не.
статычны Bool isDeftypeIndex (uint16_t typeNum)
isComplexDataType () Паведамляе, ці з'яўляецца тып дадзеных складаным ці не.
static bool isComplexDataType (ObjectEntryDataType dataType)
uintToObjectEntryDataType () Пераўтварае цэлыя лікі без знака ў тып даных OD.
sstatic ObjectEntryDataType uintToObjectEntryDataType (uint16_t objectDataType)
objectEntryDataTypeToString () Пераўтварае тып дадзеных OD у радок.
статычны std::string objectEntryDataTypeToString (ObjectEntryDataType odDataType)
stringToObjectEntryDatatype () Пераўтварае радок у тып дадзеных OD, калі гэта магчыма. У адваротным выпадку вяртае UNKNOWN_DATATYPE.
статычны ObjectEntryDataType stringToObjectEntryDatatype (std::string dataTypeString)
Версія: doc 1.4.2 / NanoLib 1.3.0
41
8 Спасылка на класы / функцыі
objectEntryDataTypeBitLength () Паведамляе аб бітавай даўжыні тыпу дадзеных запісу аб'екта.
static uint32_t objectEntryDataTypeBitLength (ObjectEntryDataType const & dataType)
8.25 Структура RESTfulBus
Гэтая структура змяшчае параметры канфігурацыі сувязі для інтэрфейсу RESTful (праз Ethernet). Ён змяшчае наступныя публічныя атрыбуты:
const std::string const unsigned long const std::string const unsigned long const std::string const unsigned long
CONNECT_TIMEOUT_OPTION_NAME = “Час чакання RESTful Connect” DEFAULT_CONNECT_TIMEOUT = 200 REQUEST_TIMEOUT_OPTION_NAME = “Час чакання RESTful Request” DEFAULT_REQUEST_TIMEOUT = 200 RESPONSE_TIMEOUT_OPTION_NAME = “Час чакання RESTful Response” DEFAULT_RESPONSE_TIMEOUT = 750
8.26 ProfinetDCP
У Linux прылажэнне для выкліку мае патрэбу ў магчымасцях CAP_NET_ADMIN і CAP_NET_RAW. Каб уключыць: sudo setcap 'cap_net_admin,cap_net_raw+eip' ./executable. У Windows інтэрфейс ProfinetDCP выкарыстоўвае WinPcap (праверана з версіяй 4.1.3) або Npcap (праверана з версіямі 1.60 і 1.30). Такім чынам, ён выконвае пошук у дынамічна загружанай бібліятэцы wpcap.dll у наступным парадку (Заўвага: бягучая падтрымка Win10Pcap адсутнічае):
1. Каталог Nanolib.dll 2. Сістэмны каталог Windows SystemRoot%System32 3. Каталог ўстаноўкі Npcap SystemRoot%System32Npcap 4. Шлях да асяроддзя
Гэты клас прадстаўляе інтэрфейс Profinet DCP і мае наступныя агульнадаступныя функцыі-члены:
getScanTimeout () Паведамляе пра час чакання сканавання прылады (па змаўчанні = 2000 мс).
віртуальны uint32_t nlc::ProfinetDCP::getScanTimeout () const
setScanTimeout () Усталёўвае тайм-аўт сканавання прылады (па змаўчанні = 2000 мс).
virtual void nlc::setScanTimeout (uint32_t timeoutMsec)
getResponseTimeout () Паведамляе аб тайм-аўце адказу прылады для наладжвання, скіду і міргання (па змаўчанні = 1000 мс).
віртуальны uint32_t nlc::ProfinetDCP::getResponseTimeout () const
setResponseTimeout () Паведамляе аб тайм-аўце адказу прылады для аперацый наладкі, скіду і міргання (па змаўчанні = 1000 мс).
virtual void nlc::ProfinetDCP::setResponseTimeout (uint32_t timeoutMsec)
Версія: doc 1.4.2 / NanoLib 1.3.0
42
8 Спасылка на класы / функцыі
isServiceAvailable ()
Выкарыстоўвайце гэтую функцыю для праверкі даступнасці паслугі Profinet DCP.
Праверка дзеяння / даступнасць сеткавага адаптара Windows: даступнасць WinPcap / Npcap Linux: магчымасці CAP_NET_ADMIN / CAP_NET_RAW
віртуальны ResultVoid nlc::ProfinetDCP::isServiceAvailable (канстанта BusHardwareId & busHardwareId)
Параметры BusHardwareId Вяртае ісціну
ілжывы
Ідэнтыфікатар апаратнага забеспячэння службы Profinet DCP для праверкі. Сэрвіс даступны. Паслуга недаступная.
scanProfinetDevices () Выкарыстоўвайце гэтую функцыю для сканавання апаратнай шыны на наяўнасць прылад Profinet.
віртуальны ResultProfinetDevices сканаваннеProfinetDevices (канстанта BusHardwareId & busHardwareId)
Параметры BusHardwareId Вяртае ResultProfinetDevices
Вызначае кожную палявую шыну для адкрыцця. Абсталяванне адкрыта.
setupProfinetDevice () Усталёўвае наступныя налады прылады:
Назва прылады
IP-адрас
Сеткавая маска
Шлюз па змаўчанні
virtual ResultVoid nlc::setupProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice struct & profinetDevice, bool savePermanent)
resetProfinetDevice () Спыняе прыладу і вяртае яе да заводскіх налад.
virtual ResultVoid nlc::resetProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice & profinetDevice)
blinkProfinetDevice () Дае каманду прыладзе Profinet пачаць міргаць святлодыёдам Profinet.
віртуальны ResultVoid nlc::blinkProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice &profinetDevice)
validateProfinetDeviceIp () Выкарыстоўвайце гэтую функцыю, каб праверыць IP-адрас прылады.
virtual ResultVoid validateProfinetDeviceIp (const BusHardwareId &busHardwareId, const ProfinetDevice & profinetDevice)
Параметры BusHardwareId ProfinetDevice
Вызначае ідэнтыфікатар абсталявання для праверкі. Вызначае прыладу Profinet для праверкі.
Версія: doc 1.4.2 / NanoLib 1.3.0
43
8 Спасылка на класы / функцыі
Вяртае ResultVoid
8.27 Структура ProfinetDevice
Даныя прылады Profinet маюць наступныя агульнадаступныя атрыбуты:
std::string std::string std::array< uint8_t, 6 > uint32_t uint32_t uint32_t
deviceName deviceVendor macAddress ipAddress netMask defaultGateway
MAC-адрас падаецца ў выглядзе масіва ў фармаце macAddress = {xx, xx, xx, xx, xx, xx}; у той час як IP-адрас, сеткавая маска і шлюз інтэрпрэтуюцца як шаснаццатковыя лічбы ў парадку байтаў, напрыклад:
IP-адрас: 192.168.0.2 Маска сеткі: 255.255.0.0 Шлюз: 192.168.0.1
0xC0A80002 0xFFFF0000 0xC0A80001
8.28 Выніковыя заняткі
Выкарыстоўвайце «неабавязковыя» вяртаныя значэнні гэтых класаў, каб праверыць, ці быў паспяховы выклік функцыі, а таксама знайсці прычыны няўдачы. У выпадку поспеху функцыя hasError () вяртае false. З дапамогай getResult () вы можаце прачытаць выніковае значэнне ў залежнасці ад тыпу (ResultInt і г.д.). Калі выклік не атрымоўваецца, вы чытаеце прычыну з дапамогай getError ().
Абароненыя атрыбуты
радок NlcErrorCode uint32_t
errorString errorCode exErrorCode
Акрамя таго, гэты клас мае наступныя публічныя функцыі члена:
hasError () Счытвае паспяховы выклік функцыі.
bool nlc::Result::hasError () канст
Вяртае
праўда ілжыва
Няўдалы выклік. Выкарыстоўвайце getError (), каб прачытаць значэнне. Паспяховы званок. Выкарыстоўвайце getResult (), каб прачытаць значэнне.
getError () Счытвае прычыну ў выпадку няўдачы выкліку функцыі.
const std::string nlc::Result::getError () const
Вяртае канстантны радок
Версія: doc 1.4.2 / NanoLib 1.3.0
44
8 Спасылка на класы / функцыі
вынік () Наступныя функцыі дапамагаюць у вызначэнні дакладных вынікаў:
Вынік (std::string const & errorString_)
Вынік (NlcErrorCode const & errCode, std::string const & errorString_)
Вынік (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
Вынік (Result const & result)
getErrorCode () Чытайце код памылкі NlcErrorCode.
NlcErrorCode getErrorCode () канст
getExErrorCode () uint32_t getExErrorCode () const
8.28.1 ResultVoid
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае void. Клас успадкоўвае агульнадаступныя функцыі і абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
ResultVoid () Наступныя функцыі дапамагаюць у вызначэнні дакладнага несапраўднага выніку:
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 (канстанта выніку і вынік)
8.28.2 ResultInt
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае цэлы лік. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Вяртае цэлы вынік, калі выклік функцыі быў паспяховым.
int64_t getResult () канст
Вяртае int64_t
Версія: doc 1.4.2 / NanoLib 1.3.0
45
8 Спасылка на класы / функцыі
ResultInt () Наступныя функцыі дапамагаюць у вызначэнні дакладнага цэлалікавага выніку:
ResultInt (int64_t result_)
ResultInt (std::string const & errorString_)
ResultInt (NlcErrorCode const & errCode, std::string const & errorString_)
ResultInt (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultInt (канстанта выніку і вынік)
8.28.3 Радок выніку
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае радок. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Счытвае радковы вынік, калі выклік функцыі быў паспяховым.
const std::string nlc::ResultString::getResult () const
Вяртае канстантны радок
ResultString () Наступныя функцыі дапамагаюць у вызначэнні дакладнага выніку радка:
ResultString (std::string const & message, bool hasError_)
ResultString (NlcErrorCode const & errCode, std::string const & errorString_)
ResultString (NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultString (канстанта выніку і вынік)
8.28.4 ResultArrayByte
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае масіў байтаў. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Счытвае вектар байтаў, калі выклік функцыі быў паспяховым.
const std::vector nlc::ResultArrayByte::getResult () канст
Вяртае канстантны вектар
Версія: doc 1.4.2 / NanoLib 1.3.0
46
8 Спасылка на класы / функцыі
ResultArrayByte () Наступныя функцыі дапамагаюць у вызначэнні дакладнага выніку масіва байтаў:
ResultArrayByte (std::vector канстанта і вынік_)
ResultArrayByte (std::string const & errorString_)
ResultArrayByte (NlcErrorCode const & errCode, std::string const & памылка String_)
ResultArrayByte (NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultArrayByte (канстанта выніку і вынік)
8.28.5 ResultArrayInt
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае цэлы масіў. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Счытвае цэлы вектар, калі выклік функцыі быў паспяховым.
const std::vector nlc::ResultArrayInt::getResult () канст
Вяртае канстантны вектар
ResultArrayInt () Наступныя функцыі дапамагаюць у вызначэнні дакладнага выніку цэлалікавага масіва:
ResultArrayInt (std::vector канстанта і вынік_)
ResultArrayInt (std::string const & errorString_)
ResultArrayInt (NlcErrorCode const & errCode, std::string const & памылка String_)
ResultArrayInt (NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultArrayInt (канстанта выніку і вынік)
8.28.6 ResultBusHwIds
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае масіў апаратных ідэнтыфікатараў шыны. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Счытвае вектар bus-hardware-ID, калі выклік функцыі быў паспяховым.
const std::vector nlc::ResultBusHwIds::getResult () канст
Параметры вектара const
Версія: doc 1.4.2 / NanoLib 1.3.0
47
8 Спасылка на класы / функцыі
ResultBusHwIds () Наступныя функцыі дапамагаюць у вызначэнні дакладнага выніку масіва ідэнтыфікатараў абсталявання шыны:
ResultBusHwIds (std::vector канстанта і вынік_)
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 (канстанта выніку і вынік)
8.28.7 ResultDeviceId
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае ідэнтыфікатар прылады. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Счытвае вектар ID прылады, калі выклік функцыі быў паспяховым.
DeviceId nlc::ResultDeviceId::getResult () канст
Вяртае канстантны вектар
ResultDeviceId () Наступныя функцыі дапамагаюць у вызначэнні дакладнага выніку ID прылады:
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 (канстанта выніку і вынік)
8.28.8 ResultDeviceIds
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае масіў ідэнтыфікатараў прылады. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Вяртае вектар ідэнтыфікатара прылады, калі выклік функцыі быў паспяховым.
DeviceId nlc::ResultDeviceIds::getResult () канст
Вяртае канстантны вектар
Версія: doc 1.4.2 / NanoLib 1.3.0
48
8 Спасылка на класы / функцыі
ResultDeviceIds () Наступныя функцыі дапамагаюць у вызначэнні дакладнага выніку масіва ідэнтыфікатараў прылады:
ResultDeviceIds (std::vector канстанта і вынік_)
ResultDeviceIds (std::string const & errorString_)
ResultDeviceIds (NlcErrorCode const & errCode, std::string const & errorString_)
ResultDeviceIds (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultDeviceIds (канстанта выніку і вынік)
8.28.9 ResultDeviceHandle
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае значэнне маркера прылады. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Счытвае маркер прылады, калі выклік функцыі быў паспяховым.
DeviceHandle nlc::ResultDeviceHandle::getResult () const
Вяртае DeviceHandle
ResultDeviceHandle () Наступныя функцыі дапамагаюць у вызначэнні дакладнага выніку апрацоўкі прылады:
ResultDeviceHandle (DeviceHandle const & result_)
ResultDeviceHandle (std::string const & errorString_)
ResultDeviceHandle (NlcErrorCode const & errCode, std::string const & errorString_)
ResultDeviceHandle (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultDeviceHandle (канстанта выніку і вынік)
8.28.10 ResultObjectDictionary
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае змест аб'ектнага слоўніка. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Счытвае вектар ID прылады, калі выклік функцыі быў паспяховым.
const nlc::ObjectDictionary & nlc::ResultObjectDictionary::getResult () const
Версія: doc 1.4.2 / NanoLib 1.3.0
49
8 Спасылка на класы / функцыі
Вяртае
пастаянны вектар
ResultObjectDictionary () Наступныя функцыі дапамагаюць у вызначэнні дакладнага выніку слоўніка аб'ектаў:
ResultObjectDictionary (nlc::ObjectDictionary const & result_)
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 (канстанта выніку і вынік)
8.28.11 ResultConnectionState
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае інфармацыю аб стане злучэння прылады. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Счытвае маркер прылады, калі выклік функцыі быў паспяховым.
DeviceConnectionStateInfo nlc::ResultConnectionState::getResult () const
Вяртае DeviceConnectionStateInfo Connected / Disconnected / ConnectedBootloader
ResultConnectionState () Наступныя функцыі дапамагаюць у вызначэнні дакладнага выніку стану злучэння:
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 (канстанта выніку і вынік)
8.28.12 ResultObjectEntry
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае запіс аб'екта. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
Версія: doc 1.4.2 / NanoLib 1.3.0
50
8 Спасылка на класы / функцыі
getResult () Вяртае вектар ідэнтыфікатара прылады, калі выклік функцыі быў паспяховым.
nlc::ObjectEntry const& nlc::ResultObjectEntry::getResult () const
Вяртае const ObjectEntry
ResultObjectEntry () Наступныя функцыі дапамагаюць у вызначэнні дакладнага выніку ўводу аб'екта:
ResultObjectEntry (nlc::ObjectEntry const & result_)
ResultObjectEntry (std::string const & errorString_)
ResultObjectEntry (NlcErrorCode const & errCode, std::string const & errorString_)
ResultObjectEntry (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultObjectEntry (канстанта выніку і вынік)
8.28.13 ResultObjectSubEntry
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае падзапіс аб'екта. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Вяртае вектар ідэнтыфікатара прылады, калі выклік функцыі быў паспяховым.
nlc::ObjectSubEntry const & nlc::ResultObjectSubEntry::getResult () const
Вяртае const ObjectSubEntry
ResultObjectSubEntry () Наступныя функцыі дапамагаюць у вызначэнні дакладнага выніку падзапісу аб'екта:
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 (канстанта выніку і вынік)
8.28.14 ResultProfinetDevices
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае прыладу Profinet. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
Версія: doc 1.4.2 / NanoLib 1.3.0
51
8 Спасылка на класы / функцыі
getResult () Счытвае вектар прылады Profinet, калі выклік функцыі быў паспяховым.
const std::vector & getResult () канст
ResultProfinetDevices () Наступныя функцыі дапамагаюць у вызначэнні дакладных прылад Profinet.
ResultProfinetDevices (const std::vector & profinetDevices)
ResultProfinetDevices (канстанта Вынік і вынік)
ResultProfinetDevices (const std::string &errorText, NlcErrorCode errorCode = NlcErrorCode::GeneralError, uint32_t extendedErrorCode = 0)
8.28.15 ВынікіampleDataArray
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае якampмасіў даных. Клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Счытвае масіў даных, калі выклік функцыі быў паспяховым.
const std::vector <SampleData> & getResult () const
ВЫНІКІampleDataArray () Наступныя функцыі дапамагаюць у вызначэнні дакладных прылад Profinet.
ВЫНІКІampleDataArray (const std::vector <SampleData> & dataArray)
ВЫНІКІampleDataArray (const std::string &errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t extendedErrorCode = 0)
ВЫНІКІampleDataArray (const ResultSampleDataArray і іншыя)
ВЫНІКІampleDataArray (канстанта Вынік і вынік)
8.28.16 ВынікіamplerState
NanoLib адпраўляе вам асобнік гэтага класа, калі функцыя вяртае якampler state. Гэты клас успадкоўвае агульнадаступныя функцыі / абароненыя атрыбуты ад выніковага класа і мае наступныя публічныя функцыі-члены:
getResult () Счытвае sampвектар стану, калі выклік функцыі быў паспяховым.
SamplerState getResult () канст
Вяртаецца СamplerState>
Не наладжана / Наладжана / Гатова / Працуе / Завершана / Збой / Адменена
Версія: doc 1.4.2 / NanoLib 1.3.0
52
8 Спасылка на класы / функцыі
ВЫНІКІamplerState () Наступныя функцыі дапамагаюць у вызначэнні дакладных sampлер дзярж.
ВЫНІКІamplerState (канст Сampштат lerState)
ВЫНІКІamplerState (const std::string & errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t
пашыраныКодПамылкі = 0)
ВЫНІКІamplerState (const ResultSamplerState і іншыя)
ВЫНІКІamplerState (канстанта Вынік і вынік)
8.29 NlcErrorCode
Калі нешта пойдзе не так, класы вынікаў паведамляюць пра адзін з кодаў памылак, пералічаных у гэтым пераліку.
Код памылкі Поспех Агульная Памылка BusUnavailable CommunicationError ProtocolError
ODDoesNotExist ODInvalidAccess ODTypeMismatch OperationAborted OperationNotSupported InvalidOperation
InvalidArguments AccessDenied ResourceNotFound ResourceUnavailable OutOfMemory TimeOutError
C: Катэгорыя D: Апісанне R: Прычына C: Няма. Д: Памылак няма. Р.: Аперацыя прайшла паспяхова.
C: Не вызначана. D: Невызначаная памылка. Р: Няўдача, якая не адпавядае іншай катэгорыі.
С: Аўтобус. D: Апаратная шына недаступная. R: Аўтобус не існуе, адключаны або няспраўны.
С: Камунікацыя. D: Сувязь ненадзейная. R: Нечаканыя даныя, няправільны CRC, памылкі кадра або цотнасці і г.д.
С: Пратакол. D: Памылка пратаколу. R: Адказ пасля опцыі непадтрымоўванага пратаколу, паведамленне прылады аб непадтрымоўваным пратаколе, памылка ў пратаколе (напрыклад, біт сінхранізацыі сегмента SDO) і г. д. R: Адказ або справаздача прылады аб непадтрымоўваным пратаколе (параметры) або аб памылках у пратаколе (напрыклад, SDO біт сінхранізацыі сегмента) і г.д. R: Непадтрымоўваны пратакол (параметры) або памылка ў пратаколе (скажам, біт сінхранізацыі сегмента SDO) і г.д.
C: Аб'ектны слоўнік. D: Адрас OD не існуе. Р: Няма такога адрасу ў слоўніку аб'ектаў.
C: Аб'ектны слоўнік. D: Несапраўдны доступ да адраса OD. R: Паспрабуйце напісаць адрас толькі для чытання або для чытання з адраса толькі для запісу.
C: Аб'ектны слоўнік. D: Несупадзенне тыпу. R: Значэнне не пераўтворана ў вызначаны тып, скажам, пры спробе разглядаць радок як лік.
C: Ужыванне. D: Працэс перапынены. R: Выразанне працэсу па запыту прыкладання. Вяртаецца толькі пры перапыненні аперацыі функцыяй зваротнага выкліку, скажам, пры сканаванні шыны.
С: Агульныя. D: Працэс не падтрымліваецца. R: Няма апаратнай падтрымкі шыны / прылады.
С: Агульныя. D: Працэс няправільны ў бягучым кантэксце або несапраўдны з бягучым аргументам. R: Спроба паўторнага падключэння да ўжо падлучаных шын / прылад. Спроба адключэння да ўжо адключаных. Спроба працы загрузніка ў рэжыме прашыўкі ці наадварот.
С: Агульныя. D: Аргумент несапраўдны. Р: Няправільная логіка ці сінтаксіс.
С: Агульныя. D: Доступ забаронены. R: Адсутнасць правоў або магчымасцяў для выканання запытанай аперацыі.
С: Агульныя. D: Указаны элемент не знойдзены. R: Апаратная шына, пратакол, прылада, адрас OD на прыладзе або file не быў знойдзены.
С: Агульныя. D: Указаны элемент не знойдзены. R: заняты, не існуе, перапынак або дэфект.
С: Агульныя. D: Недастаткова памяці. R: Занадта мала памяці для апрацоўкі гэтай каманды.
С: Агульныя. D: Час чакання працэсу скончыўся. R: Вяртанне пасля заканчэння тайм-аўту. Тайм-аўт можа быць часам адказу прылады, часам атрымання агульнага або эксклюзіўнага доступу да рэсурсу або часам пераключэння шыны/прылады ў прыдатны стан.
Версія: doc 1.4.2 / NanoLib 1.3.0
53
8 Спасылка на класы / функцыі
8.30 NlcCallback
Гэты бацькоўскі клас для зваротных выклікаў мае наступную публічную функцыю-член: зваротны выклік ()
віртуальны зваротны выклік ResultVoid ()
Вяртае
ResultVoid
8.31 NlcDataTransferCallback
Выкарыстоўвайце гэты клас зваротнага выкліку для перадачы даных (абнаўленне прашыўкі, загрузка NanoJ і г.д.). 1. Для загрузкі ўбудаванага праграмнага забеспячэння: вызначце «сумесны клас», пашыраючы гэты з дапамогай карыстацкага метаду зваротнага выкліку
рэалізацыя. 2. Выкарыстоўвайце асобнікі «сумеснага класа» ў выкліках NanoLibAccessor.uploadFirmware (). Сам асноўны клас мае наступную публічную функцыю члена:
зваротны выклік () віртуальны зваротны выклік ResultVoid (інфармацыя пра nlc::DataTransferInfo, дадзеныя int32_t)
Вяртае
ResultVoid
8.32 NlcScanBusCallback
Выкарыстоўвайце гэты клас зваротнага выкліку для сканавання шыны. 1. Вызначце «сумесны клас», які пашырае гэты з выкарыстаннем нестандартнага метаду зваротнага выкліку. 2. Выкарыстоўвайце асобнікі «сумеснага класа» ў выкліках NanoLibAccessor.scanDevices (). Сам асноўны клас мае наступную функцыю публічнага члена.
ператэлефанаваць ()
віртуальны зваротны выклік ResultVoid (інфармацыя пра nlc::BusScanInfo, std::vector const & devicesFound, дадзеныя int32_t)
Вяртае ResultVoid
8.33 NlcLoggingCallback
Выкарыстоўвайце гэты клас зваротнага выкліку для рэгістрацыі зваротных выклікаў. 1. Вызначце клас, які пашырае гэты клас з дапамогай нестандартнай рэалізацыі метаду зваротнага выкліку. 2. Выкарыстоўвайце паказальнік на яго асобнікі, каб усталяваць зваротны выклік з дапамогай NanoLibAccessor >
setLoggingCallback (...).
зваротны выклік virtual void (const std::string & payload_str, const std::string & formatted_str, const std::string & logger_name, const unsigned int log_level, const std::uint64_t time_since_epoch, const size_t thread_id)
8.34 СamplerInterface
Выкарыстоўвайце гэты клас для канфігурацыі, запуску і спынення sampler, або атрымаць sampпрывёў даныя і атрымаць якampстатус ler або апошняя памылка. Клас мае наступныя публічныя функцыі-члены.
Версія: doc 1.4.2 / NanoLib 1.3.0
54
8 Спасылка на класы / функцыі
configure () Наладжвае якampлер.
віртуальны ResultVoid nlc::SamplerInterface::configure (const DeviceHandle deviceHandle, const SamplerConfiguration & sampканфігурацыя ler)
Параметры [ў] deviceHandle [у] сampканфігурацыя ler
Вяртае ResultVoid
Вызначае прыладу для канфігурацыі sampлер для. Задае значэнні атрыбутаў канфігурацыі. Пацвярджае, што запушчана функцыя void.
getData () Атрымлівае sampпрывялі дадзеныя.
віртуальныя вынікіampleDataArray nlc::SamplerInterface::getData (const DeviceHandle deviceHandle)
Параметры [ў] deviceHandle Вяртае вынікіampleDataArray
Вызначае, для якой прылады атрымліваць даныя.
Дастаўляе сampled data, якія могуць быць пустым масівам, калі samplerNotify актыўны пры запуску.
getLastError () Атрымлівае якampапошняя памылка Лера.
віртуальны ResultVoid nlc::SamplerInterface::getLastError (const DeviceHandle deviceHandle)
Вяртае ResultVoid
Пацвярджае, што запушчана функцыя void.
getState () Атрымлівае якampстатус лера.
віртуальныя вынікіamplerState nlc::SamplerInterface::getState (const DeviceHandle deviceHandle)
Вяртае ResultSamplerState
Дастаўляе сampлер дзярж.
start () Пачынаецца якampлер.
віртуальны ResultVoid nlc::SamplerInterface::start (const DeviceHandle deviceHandle, SamplerNotify* samplerNotify, int64_t applicationData)
Параметры [ў] deviceHandle [у] SamplerNotify [у] ApplicationData
Вяртае ResultVoid
Вызначае, з якой прылады запускаць sampлер для.
Вызначае, якую неабавязковую інфармацыю паведамляць (можа быць nullptr).
Параметр: перанакіроўвае даныя, звязаныя з прылажэннем (вызначаны карыстальнікам 8-бітны масіў значэння / ідэнтыфікатара прылады / індэкса або даты і часу, паказальнік зменнай / функцыі і г.д.) у samplerNotify.
Пацвярджае, што запушчана функцыя void.
Версія: doc 1.4.2 / NanoLib 1.3.0
55
8 Спасылка на класы / функцыі
stop () Спыняецца якampлер.
віртуальны ResultVoid nlc::SamplerInterface::stop (const DeviceHandle deviceHandle)
Параметры [ў] deviceHandle Вяртае ResultVoid
Вызначае прыладу для спынення sampлер для. Пацвярджае, што запушчана функцыя void.
8.35 Сampструктура lerConfiguration
Гэтая структура змяшчае дадзеныя sampпараметры канфігурацыі ler (статычныя ці не).
Публічная атрыбутыка
std::vector trackedAddresses
Да 12 адрасоў ODampвял.
uint32_t
версія
Варыянт структуры.
uint32_t
працягласць мілісекунд
Sampпрацягласць лінга ў мс, ад 1 да 65535
uint16_t
перыядМілісекунды
Sampлінг перыяд у мс.
uint16_t
лікOfSampлес
Sampменшая сума.
uint16_t
preTriggerNumberOfSampлес
Samples папярэдняя колькасць.
буль
з дапамогай SoftwareImplementation
Выкарыстоўвайце праграмную рэалізацыю.
буль
з дапамогай NewFWSamplerImplementation Выкарыстоўвайце рэалізацыю FW для прылад з a
FW версія v24xx або навей.
SamplerMode
рэжым
Нармальныя, паўтаральныя або бесперапынныя sampлінг.
SamplerTriggerCondition triggerCondition
Умовы запуску: 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
Трыгер для запускуampлер?
Статычныя публічныя атрыбуты
static constexpr size_t SAMPLER_CONFIGURATION_VERSION = 0x01000000 static constexpr size_t MAX_TRACKED_ADDRESSES = 12
8.36 СamplerNotify
Выкарыстоўвайце гэты клас, каб актываваць sampler апавяшчэнні, калі вы пачынаеце якampлер. Клас мае наступную публічную функцыю члена.
Версія: doc 1.4.2 / NanoLib 1.3.0
56
8 Спасылка на класы / функцыі
паведаміць ()
Дастаўляе запіс паведамлення.
віртуальная пустэча nlc::SamplerNotify::notify (const ResultVoid & lastError, const SamplerState samplerState, const std::vector <SampleData> & sampleDatas, int64_t applicationData)
Параметры [in] lastError [in] samplerState
[у] сampleDatas [у] ApplicationData
Паведамляе аб апошняй памылцы падчас sampлінг. Паведамляе сampстатус на момант паведамлення: Не наладжаны / Настроены / Гатовы / Працуе / Завершана / Збой / Адменена. Паведамляе сampled-масіў дадзеных. Паведамляе даныя канкрэтнага прыкладання.
8.37 Сampструктура leData
Гэтая структура ўтрымлівае sampпрывялі дадзеныя.
нумар ітэрацыі uin64_t
Пачынаецца з 0 і павялічваецца толькі ў рэжыме паўтору.
std::vector<SampledValues> Змяшчае масіў sampпрывялі значэння.
8.38 Сampструктура ledValue
Гэтая структура ўтрымлівае sampпрывялі значэння.
in64_t значэнне uin64_t CollectTimeMsec
Змяшчае значэнне адсочванага адраса OD.
Змяшчае час збору ў мілісекундах адносна сample пачатак.
8.39 Сampструктура lerTrigger
Гэтая структура змяшчае налады трыгера sampлер.
SampУмова lerTriggerCondition
Значэнне OdIndex uin32_t
Умова запуску: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 (адрас) трыгера.
Значэнне ўмовы або нумар біта (пачынаючы з нуля).
8.40 Серыйная структура
Знайдзіце тут параметры паслядоўнай сувязі і наступныя агульнадаступныя атрыбуты:
const std::string const SerialBaudRate
BAUD_RATE_OPTIONS_NAME = «хуткасць паслядоўнай перадачы» baudRate =Структура SerialBaudRate
Версія: doc 1.4.2 / NanoLib 1.3.0
57
8 Спасылка на класы / функцыі
const std::string const SerialParity
PARITY_OPTIONS_NAME = “паслядоўная цотнасць” parity = SerialParity struct
8.41 SerialBaudRate struct
Знайдзіце тут вашу паслядоўную хуткасць перадачы дадзеных і наступныя агульнадаступныя атрыбуты:
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
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” BAUD_RATE_115200 = “115200” BAUD_RATE_128000 = “128000” BAUD_RATE_256000 = “256000”
8.42 Структура SerialParity
Знайдзіце тут параметры паслядоўнага парытэту і наступныя агульнадаступныя атрыбуты:
const std::string const std::string const std::string const std::string const std::string
NONE = «няма» ODD = «няцотны» EVEN = «цотны» MARK = «значыць» SPACE = «прабел»
Версія: doc 1.4.2 / NanoLib 1.3.0
58
9 Ліцэнзіі
9 Ліцэнзіі
Загалоўкі інтэрфейсу NanoLib API і прampзыходны код ліцэнзаваны Nanotec Electronic GmbH & Co. KG у адпаведнасці з ліцэнзіяй Creative Commons Attribution 3.0 Unported (CC BY). Часткі бібліятэкі, прадстаўленыя ў двайковым фармаце (бібліятэкі сувязі ядра і палявой шыны), ліцэнзаваны ў адпаведнасці з міжнароднай ліцэнзіяй Creative Commons AttributionNoDerivatives 4.0 (CC BY ND).
Creative Commons
Наступнае зручнае для чытання рэзюмэ не замяняе саму ліцэнзію(-і). Вы можаце знайсці адпаведную ліцэнзію на creativecommons.org са спасылкай ніжэй. Вы можаце:
CC BY 3.0
Падзяліцца: Глядзі справа. Адаптацыя: рэмікс, трансфармацыя і стварэнне на аснове
матэрыял для любых мэт, нават камерцыйных.
CC BY-ND 4.0
Падзяліцеся: капіруйце і распаўсюджвайце матэрыял на любым носьбіце або ў любым фармаце.
Ліцэнзіар не можа адклікаць вышэйзгаданыя свабоды, пакуль вы выконваеце наступныя ўмовы ліцэнзіі:
CC BY 3.0
CC BY-ND 4.0
Атрыбуцыя: вы павінны пазначыць належнае аўтарства, атрыбуцыя: гл. злева. Але: дайце спасылку на гэта
дайце спасылку на ліцэнзію і пазначце, калі
іншая ліцэнзія.
былі ўнесены змены. Вы можаце зрабіць гэта ў любым
Без вытворных: калі вы рэміксуеце, трансфармуеце або будуеце
разумна, але не так, каб
на матэрыял, вы не можаце распаўсюджваць
указвае, што ліцэнзіар падтрымлівае вас або ваша выкарыстанне.
мадыфікаваны матэрыял.
Без дадатковых абмежаванняў: Вы не можаце падаць заяўку. Без дадатковых абмежаванняў: Глядзіце злева. юрыдычныя ўмовы або тэхналагічныя меры, якія легальна
забараняць іншым рабіць што-небудзь па ліцэнзіі
дазволы.
Заўвага: Вы не абавязаны выконваць умовы ліцэнзіі на элементы матэрыялу, якія знаходзяцца ў грамадскім здабытку, або там, дзе ваша выкарыстанне дазволена прыдатным выключэннем або абмежаваннем.
Заўвага: гарантыі не прадастаўляюцца. Ліцэнзія можа не даць вам усіх дазволаў, неабходных для меркаванага выкарыстання. Напрыкладample, іншыя правы, такія як публічнасць, канфідэнцыяльнасць або маральныя правы, могуць абмежаваць тое, як вы выкарыстоўваеце матэрыял.
Версія: doc 1.4.2 / NanoLib 1.3.0
59
Выходныя дадзеныя, кантакты, версіі
©2024 Nanotec Electronic GmbH & Co.KGKapellenstr.685622 FeldkirchenГерманіяТэл.+49(0) 89 900 686-0Факс+49(0)89 900 686-50 info@nanotec.dewww.nanotec.com Усе правы абароненыя. Памылка, пропуск, тэхнічнае змяненне або змяненне зместу магчымыя без папярэдняга паведамлення. Цытаваныя брэнды/прадукты з'яўляюцца гандлёвымі маркамі іх уладальнікаў і разглядаюцца як такія. Арыгінальная версія.
Дакумент 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
+ Дададзена > Зменена # Выпраўлена > Паўторная праца прадстаўленага прampлес.
+ NanoLib Modbus: дададзены механізм блакіроўкі прылады для Modbus VCP. # NanoLib Core: выпраўлена праверка стану злучэння. # Код NanoLib: Выпраўленае выдаленне спасылкі на абсталяванне шыны.
+ NanoLib-CANopen: падтрымка адаптара Peak PCAN-USB (IPEH-002021/002022).
> NanoLib Core: зменены інтэрфейс зваротнага выкліку вядзення часопіса (LogLevel заменены на LogModule). # NanoLib Logger: падзел паміж ядром і модулямі быў выпраўлены. # Modbus TCP: Выпраўленае абнаўленне прашыўкі для FW4. # EtherCAT: выпраўлена загрузка праграмы NanoJ для Core5. # EtherCAT: Выпраўленае абнаўленне прашыўкі для Core5.
# Modbus RTU: Выпраўлены праблемы часу з нізкімі хуткасцямі перадачы падчас абнаўлення прашыўкі. # RESTful: выпраўлена загрузка праграмы NanoJ.
# Модулі NanoLib Sampлер: Правільнае чытанне сampвялі лагічныя значэнні.
+ Падтрымка Java 11 для ўсіх платформаў. + Падтрымка Python 3.11/3.12 для ўсіх платформаў. + Новы інтэрфейс зваротнага выкліку рэгістрацыі (гл. прыкладampлес). + Прыём зваротнага выкліку для NanoLib Logger. > Абнавіць рэгістратар да версіі 1.12.0. > Модулі NanoLib Sampler: Цяпер падтрымліваецца прашыўка кантролера Nanotec v24xx. > Модулі NanoLib Sampler: Змена структуры, якая выкарыстоўваецца для sampлер канфігурацыі. > Модулі NanoLib Sampler: Бесперапынны рэжым з'яўляецца сінонімам бясконцага; ўмова трыгера правяраецца адзін раз; колькасць сamples павінен быць 0. > NanoLib Modules Sampler: звычайны прыярытэт для патоку, які збірае дадзеныя ў рэжыме прашыўкі. > Модулі NanoLib Sampler: перапісаны алгарытм для вызначэння пераходу паміж станам Ready і Running. # Ядро NanoLib: больш няма парушэння доступу (0xC0000005) пры закрыцці 2 ці больш прылад, якія выкарыстоўваюць адно і тое ж абсталяванне шыны. # Ядро NanoLib: больш няма памылкі сегментацыі пры падключэнні адаптара PEAK пад Linux. # Модулі NanoLib Sampler: Правільна sampчытанне led-значэнняў у рэжыме прашыўкі. # Модулі NanoLib Sampler: правільная канфігурацыя 502X:04. # Модулі NanoLib Sampler: Правільнае змешванне буфераў з каналамі. # NanoLib-Canopen: павялічаныя тайм-аўты CAN для надзейнасці і правільнага сканавання пры меншых хуткасцях перадачы дадзеных. # NanoLib-Modbus: алгарытм выяўлення VCP для спецыяльных прылад (USB-DA-IO).
+ Падтрымка EtherCAT.
+ Заўвага пра налады праекта VS у раздзеле "Наладзьце свой праект".
+ getDeviceHardwareGroup (). + getProfinetDCP (isServiceAvailable). + getProfinetDCP (validateProfinetDeviceIp). + autoAssignObjectDictionary (). + getXmlFileІмя (). + const std::string & xmlFileШлях у addObjectDictionary (). + атрымацьSamplerInterface ().
Прадукт 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)
Версія: doc 1.4.2 / NanoLib 1.3.0
60
10 Выходныя дадзеныя, кантакты, версіі
Дакумент
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
+ Дададзена > Зменена # Выпраўлена + rebootDevice (). + Код памылкі ResourceUnavailable для getDeviceBootloaderVersion (), ~VendorId (), ~HardwareVersion (), ~SerialNumber і ~Uid. > прашыўка UploadFromFile цяпер uploadFirmwareFromFile (). > firmwareUpload () зараз uploadFirmware (). > загрузнік UploadFromFile () цяпер uploadBootloaderFromFile (). > bootloaderUpload () цяпер uploadBootloader (). > загрузнік Firmware UploadFromFile () для загрузкі BootloaderFirmwareFromFile (). > bootloaderFirmwareUpload () зараз uploadBootloaderFirmware (). > nanojUploadFromFile () цяпер uploadNanoJFromFile (). > nanojUpload () цяпер uploadNanoJ (). > objectDictionaryLibrary () зараз getObjectDictionaryLibrary (). > String_String_Map цяпер StringStringMap. > NanoLib-Common: больш хуткае выкананне listAvailableBusHardware і openBusHardwareWithProtocol з адаптарам Ixxat. > NanoLib-CANopen: выкарыстоўваюцца налады па змаўчанні (хуткасць перадачы 1000k, шына Ixxat нумар 0), калі апаратныя параметры шыны пустыя. > NanoLib-RESTful: дазвол адміністратара састарэў для сувязі з загрузнікамі Ethernet пад Windows, калі даступны драйвер npcap / winpcap. # NanoLib-CANopen: апаратнае забеспячэнне шыны цяпер адкрываецца без збояў з пустымі параметрамі. # NanoLib-Common: openBusHardwareWithProtocol () зараз без уцечкі памяці.
+ Падтрымка Linux ARM64. + Падтрымка USB-назапашвальніка / REST / Profinet DCP. + checkConnectionState (). + getDeviceBootloaderVersion (). + ResultProfinetDevices. + NlcErrorCode (заменены NanotecExceptions). + NanoLib Modbus: канцэнтратар VCP / USB, аб'яднаны з USB. > Сканаванне Modbus TCP вяртае вынікі. < Затрымка сувязі Modbus TCP застаецца пастаяннай.
+ Яшчэ ObjectEntryDataType (складаны і прафесійныfile- канкрэтныя). + IOError вяртаецца, калі connectDevice () і scanDevices () не знаходзяць. + Толькі 100 мс намінальны тайм-аўт для CanOpen / Modbus.
+ Падтрымка Modbus (плюс USB-канцэнтратар праз VCP). + Раздзел Стварэнне ўласнага праекта Linux. + extraHardwareSpecifier да BusHardwareId (). + extraId_ і extraStringId_ да DeviceId ().
+ setBusState (). + getDeviceBootloaderBuildId (). + getDeviceFirmwareBuildId (). + getDeviceHardwareVersion (). # Выпраўленні памылак.
Выданне.
Прадукт
0.8.0 0.7.1 0.7.0 0.5.1 0.5.1
Версія: doc 1.4.2 / NanoLib 1.3.0
61
Дакументы / Рэсурсы
![]() |
Праграмаванне Nanotic NanoLib на C++ [pdfКіраўніцтва карыстальніка Праграмаванне NanoLib на C, праграмаванне на C, праграмаванне |

