Nanotic-LOGO

Nanotic NanoLib C++ программалоо

Nanotic-NanoLib-C++-Программалоо-ПРОДУКТ

Продукт маалыматы

Техникалык шарттар

  • Продукт аты: NanoLib
  • Программалоо Тили: C++
  • Продукциянын версиясы: 1.3.0
  • Колдонуучунун колдонмосунун версиясы: 1.4.2

NanoLib китепканасы Nanotec контроллерлору үчүн программалык камсыздоону башкаруу үчүн иштелип чыккан. Ал башкаруу тиркемелерин иштеп чыгууну жеңилдетүү үчүн колдонуучу интерфейсин, негизги функцияларды жана байланыш китепканаларын камсыз кылат.

Продукт колдонуу нускамалары

  • Баштоодон мурун:
    • Системаңыз колдонмодо көрсөтүлгөн аппараттык камсыздоо талаптарына жооп берерин текшериңиз. Бул продукт үчүн арналган аудитория Nanotec контроллерлору үчүн башкаруу программасын түзүүнү көздөгөн иштеп чыгуучуларды камтыйт.
  • Баштоо:
    • NanoLib колдонууну баштоо үчүн, төмөнкү кадамдарды аткарыңыз:
    • Долбооруңузга NanoLib импорттоо менен баштаңыз.
    • Долбооруңуздун жөндөөлөрүн керектүү учурда конфигурациялаңыз.
    • NanoLib функцияларын камтуу үчүн долбооруңузду түзүңүз.
  • Долбоорлорду түзүү:
    • Сиз Windows жана Linux чөйрөлөрү үчүн долбоорлорду түзө аласыз. Ар бир платформа үчүн колдонмодо берилген конкреттүү нускамаларды аткарыңыз.
  • Класстар / Функциялар Шилтеме:
    • NanoLib программасын башкаруу программасы үчүн жеткиликтүү класстар жана функциялар боюнча деталдуу жолду колдонуу үчүн колдонмону караңыз.

Көп берилүүчү суроолор

  • С: NanoLibтин максаты эмне?
    • A: NanoLib - бул Nanotec контроллерлору үчүн программалоо башкаруу программасы үчүн китепкана, маанилүү функцияларды жана байланыш мүмкүнчүлүктөрүн камсыз кылат.
  • С: NanoLib менен кантип баштасам болот?
    • A: NanoLib'ти долбооруңузга импорттоодон, долбоордун жөндөөлөрүн конфигурациялоодон жана NanoLib функцияларын колдонуу үчүн долбооруңузду куруудан баштаңыз.

“`

User Manual NanoLib
C++

Продукт версиясы 1.3.0 менен жарактуу

Колдонуучунун колдонмосунун версиясы: 1.4.2

Максатты жана конвенцияларды документтештирүү

Бул документ NanoLib китепканасын орнотууну жана колдонууну сүрөттөйт жана Nanotec контроллерлору үчүн өзүңүздүн башкаруу программаңызды программалоо үчүн бардык класстарга жана функцияларга шилтемени камтыйт. Биз төмөнкү тамгаларды колдонобуз:
Асты сызылган текст кайчылаш шилтемени же гипершилтемени белгилейт.
Example 1: NanoLibAccessor боюнча так көрсөтмөлөр үчүн Орнотууларды караңыз. Мисample 2: Ixxat драйверин орнотуп, CAN-USB адаптерин туташтырыңыз. Курив текст дегенди билдирет: Бул аталган объект, меню жолу / пункт, өтмөк / file аты же (зарыл болсо) чет тилдеги сөз айкашы.
Example 1: Тандоо File > Жаңы > Бош документ. Курал тактасын ачып, Комментарийди тандаңыз. Мисample 2: Бул документ колдонуучуларды (= Nutzer; usuario; utente; utilisateur; utente ж.б.) бөлөт:
– Үчүнчү тараптын колдонуучусу (= Drittnutzer; tercero usuario; terceiro utente; tiers utilisateur; terzo utente ж.б.). – Акыркы колдонуучу (= Endnutzer; usuario final; utente final; utilisateur final; utente finale ж.б.).
Courier код блокторун же программалоо буйруктарын белгилейт. Мисample 1: Bash аркылуу, жалпы объекттерди көчүрүү үчүн sudo make install чакырыңыз; андан кийин ldconfig чакырыңыз. Мисample 2: NanoLibдеги журналдын деңгээлин өзгөртүү үчүн төмөнкү NanoLibAccessor функциясын колдонуңуз:
// ***** C++ варианты *****
void setLoggingLevel(LogLevel деңгээли);
Калың текст өзгөчө мааниге ээ болгон айрым сөздөргө басым жасайт. Же болбосо, кашаадагы илеп белгилери критикалык(!) мааниге басым жасайт.
Example 1: Өзүңүздү, башкаларды жана жабдууларыңызды коргоңуз. Жалпысынан бардык Nanotec өнүмдөрүнө тиешелүү болгон жалпы коопсуздук эскертүүлөрүбүздү аткарыңыз.
Example 2: Өзүңүздүн коргооңуз үчүн, ошондой эле ушул белгилүү продуктка тиешелүү болгон атайын коопсуздук эскертүүлөрүн аткарыңыз. Бирге басуу этиши контексттик менюну ачуу үчүн чычкандын экинчи баскычы аркылуу чыкылдатууну билдирет.
Example 1: бирге басуу file, Атын өзгөртүү тандаңыз жана атын өзгөртүңүз file. Мисample 2: касиеттерин текшерүү үчүн бирге басуу file жана Касиеттерди тандаңыз.

Версия: doc 1.4.2 / NanoLib 1.3.0

4

Баштоодон мурун

NanoLib колдонууну баштоодон мурун, компьютериңизди даярдап, максаттуу пайдалануу жана китепкананын чектөөлөрү жөнүндө маалымат бериңиз.
2.1 Системалык жана аппараттык талаптар

Nanotic-NanoLib-C++-Programming-FIG- (1)
ЭСКЕРТҮҮ 32 биттик операциядан же токтотулган системадан бузулуу! 64 биттик системаны колдонуңуз жана ырааттуу сактаңыз. OEM токтотууларды жана ~ нускамаларды сактаңыз.

NanoLib 1.3.0 CANopen, Modbus RTU (ошондой эле USB виртуалдык ком портунда), Modbus TCP, EtherCat жана Profinet менен бардык Nanotec өнүмдөрүн колдойт. Эски NanoLibs үчүн: Издөөдөгү өзгөртүүлөр журналын караңыз. Сиздин тобокелдик гана: эски системаны колдонуу. Эскертүү: FTDI негизиндеги USB адаптерин колдонууда көйгөйлөргө туш болсоңуз, күтүү мөөнөтүн мүмкүн болушунча төмөн коюу үчүн жарактуу OEM нускамаларын аткарыңыз.

Талаптар (64-бит системасы милдеттүү)
Windows 10 же 11 w/ Visual Studio 2019 16.8 же андан кийинки версиясы жана Windows SDK 10.0.20348.0 (версия 2104) же андан кийинкиси
C++ кайра бөлүштүрүлүүчү 2017 же андан жогору CANopen: Ixxat VCI же PCAN негизги драйвери (милдеттүү эмес) EtherCat модулу / Profinet DCP: Npcap же WinPcap RESTful модулу: Npcap, WinPcap же администратордун уруксаты
Ethernet жүктөөчүлөрү менен байланышуу
Linux w/ 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 жөндөмдүүлүктөрүн эс алуу: CAP_NET_ADMIN Eth- менен байланышуу жөндөмү
ernet жүктөгүчтөрү (ошондой эле сунушталат: CAP_NET_RAW)

Тил, фельдбус адаптерлери, кабелдер
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 адаптери arm64 боюнча Ubuntu үчүн Ixxat колдоосу жок
Modbus RTU: Nanotec ZK-USB-RS485-1 же эквиваленттүү адаптер; USB кабели виртуалдык ком-портто (VCP)
Modbus TCP: Ethernet кабели продукт маалымат барагына ылайык

2.2 Максаттуу пайдалануу жана аудитория
NanoLib өнөр жайлык колдонмолордун кеңири спектринде жана тийиштүү квалификациялуу программисттер үчүн гана Nanotec контроллерлорунун иштеши жана байланышы үчүн программалык китепкана жана программалык камсыздоо компоненти.
НаноЛиб реалдуу убакыт режиминдеги жөндөмсүз аппараттык (PC) жана операциялык тутумдан улам синхрондуу көп октуу кыймылды талап кылган же жалпысынан убакытка сезгич болгон тиркемелерде колдонууга болбойт.
Эч кандай учурда сиз NanoLibти өнүмгө же системага коопсуздук компоненти катары киргизе албайсыз. Акыркы колдонуучуларга жеткирилгенде, Nanotec тарабынан чыгарылган ар бир өнүмгө коопсуз колдонуу жана коопсуз иштетүү боюнча тиешелүү эскертүү эскертүүлөрүн жана нускамаларды кошушуңуз керек. Nanotec чыгарган бардык эскертүү эскертүүлөрүн акыркы колдонуучуга өткөрүп беришиңиз керек.
2.3 Жеткирүү жана кепилдик көлөмү
NanoLib биздин жүктөп алуудан *.zip папка катары келет webEMEA / APAC же AMERICA үчүн сайт. Орнотуудан мурун жүктөөңүздү талаптагыдай сактап жана ачыңыз. NanoLib пакети төмөнкүлөрдү камтыйт:

Версия: doc 1.4.2 / NanoLib 1.3.0

5

2 Баштоодон мурун

Булак коду (API) катары интерфейстин аталыштары

Бинардык форматтагы китепканалар катары негизги функциялар: нано-

Байланышты жеңилдеткен китепканалар: nanolibm_ lib.dll

[yourfieldbus].dll ж.б.

Exampпроект: Мисample.sln (Visual Studio

долбоору) жана эксample.cpp (негизги file)

Кепилдиктин көлөмү үчүн, а) EMEA/APAC же AMERICA үчүн шарттарыбызды жана б) бардык лицензия шарттарын сактаңыз. Эскертүү: Nanotec үчүнчү тараптын жабдууларын туура эмес же туура эмес сапат, иштетүү, орнотуу, иштетүү, пайдалануу жана тейлөө үчүн жоопкерчилик тартпайт! Тиешелүү коопсуздук үчүн, ар дайым жарактуу OEM нускамаларын аткарыңыз.

Версия: doc 1.4.2 / NanoLib 1.3.0

6

NanoLib архитектурасы

NanoLibдин модулдук программалык түзүмү сизге алдын ала түзүлгөн өзөктүн айланасында эркин настройкаланган мотор контроллерин/филдбус функцияларын уюштурууга мүмкүндүк берет. NanoLib төмөнкү модулдарды камтыйт:

Колдонуучу интерфейси (API)

NanoLib өзөгү

Интерфейс жана жардамчы класстар кайсы китепканалар

Байланыш китепканалары Fieldbus үчүн атайын китепканалар кайсы

Сиздин контроллеруңуздун NanoLib ортосундагы API функционалдуу интерфейсин ишке ашырууга кирүү

OD (объект сөздүгү)

автобус китепканалары менен иштешет.

негизги жана автобус аппаратурасы.

NanoLib негизги функциясына негизделген

улуттар.

3.1 Колдонуучу интерфейси

Колдонуучу интерфейси баш интерфейстен турат fileс сиз контроллердин параметрлерине жетүү үчүн колдоно аласыз. Класстар/функциялар маалымдамасында сүрөттөлгөн колдонуучу интерфейсинин класстары төмөнкүлөргө мүмкүндүк берет:
Аппараттык камсыздоого (филдбус адаптерине) жана контроллер түзмөгүнө туташтырыңыз. Контроллердин параметрлерин окуу/жазуу үчүн аппараттын 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 OS менен бирге даярдоо үчүн, C++ кеңейтүүлөрү менен MS Visual Studio орнотуңуз. Linux Bash аркылуу make жана gcc орнотуу үчүн sudo apt install build-essentials деп атаңыз. Андан кийин NanoLib колдонгон колдонмо үчүн CAP_NET_ADMIN, CAP_NET_RAW жана CAP_SYS_NICE мүмкүнчүлүктөрүн иштетиңиз: 1. Sudo setcap 'cap_net_admin,cap_net_raw,cap_sys_nice+eip' деп чалыңыз
аты>. 2. Ошондон кийин гана адаптериңиздин драйверлерин орнотуңуз.
4.2 Windows үчүн Ixxat адаптер драйверин орнотуңуз
Тиешелүү драйвер орнотулгандан кийин гана Ixxatтын USB-to-CAN V2 адаптерин колдоно аласыз. Виртуалдык компортту (VCP) кантип активдештирүү керек экенин билүү үчүн USB дисктеринин продукт нускамасын окуңуз. 1. Windows үчүн Ixxat VCI 4 драйверин жүктөп алып, орнотуңуз www.ixxat.com. 2. Ixxatтын USB-to-CAN V2 компакт адаптерин компьютерге USB аркылуу туташтырыңыз. 3. Түзмөк башкаргычы тарабынан: Драйвер менен адаптердин туура орнотулганын/таанылганын текшериңиз.
4.3 Windows үчүн Peak адаптер драйверин орнотуңуз
Тиешелүү драйвер орнотулгандан кийин гана Peakтин PCAN-USB адаптерин колдоно аласыз. Виртуалдык компортту (VCP) кантип активдештирүү керек экенин билүү үчүн USB дисктеринин продукт нускамасын окуңуз. 1. Windows түзмөгүнүн драйверинин орнотуусун жүктөп алып, орнотуңуз (= орнотуу топтому w/ аспап драйверлери, шаймандар жана
APIs) тартып http://www.peak-system.com. 2. Пиктин PCAN-USB адаптерин компьютерге USB аркылуу туташтырыңыз. 3. Түзмөк башкаргычы тарабынан: Драйвер менен адаптердин туура орнотулганын/таанылганын текшериңиз.
4.4 Linux үчүн Ixxat адаптер драйверин орнотуңуз
Тиешелүү драйвер орнотулгандан кийин гана Ixxatтын USB-to-CAN V2 адаптерин колдоно аласыз. Эскертүү: Башка колдоого алынган адаптерлерге sudo chmod +777/dev/ttyACM* (* түзмөктүн номери) аркылуу сиздин уруксатыңыз керек. Виртуалдык компортту (VCP) кантип активдештирүү керек экенин билүү үчүн USB дисктеринин продукт нускамасын окуңуз. 1. ECI драйвери жана демо колдонмосу үчүн керектүү программаны орнотуңуз:
sudo apt-get жаңыртуу apt-get орнотуу libusb-1.0-0-dev libusb-0.1-4 libc6 libstdc++6 libgcc1 buildessential
2. ECI-for-Linux драйверин www.ixxat.com сайтынан жүктөп алыңыз. Аны төмөнкү аркылуу ачыңыз:
unzip 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 Linux үчүн Peak адаптер драйверин орнотуңуз
Тиешелүү драйвер орнотулгандан кийин гана Peakтин PCAN-USB адаптерин колдоно аласыз. Эскертүү: Башка колдоого алынган адаптерлерге sudo chmod +777/dev/ttyACM* (* түзмөктүн номери) аркылуу сиздин уруксатыңыз керек. Виртуалдык компортту (VCP) кантип активдештирүү керек экенин билүү үчүн USB дисктеринин продукт нускамасын окуңуз. 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 адаптерин сайыңыз.
а) ядро ​​модулун текшерүү:
lsmod | grep pcan б) ... жана жалпы китепкана:
ls -l /usr/lib/libpcan*
Эскертүү: USB3 көйгөйлөрү пайда болсо, USB2 портун колдонуңуз.
4.6 Аппаратыңызды туташтырыңыз
NanoLib долбоорун иштетүү үчүн, адаптериңизди колдонуп, туура келген Nanotec контроллерин компьютерге туташтырыңыз. 1. Ылайыктуу кабель аркылуу адаптериңизди контроллерге туташтырыңыз. 2. Адаптердин маалымат баракчасына ылайык адаптерди компьютерге туташтырыңыз. 3. Ылайыктуу электр булагы аркылуу контроллерди күйгүзүңүз. 4. Зарыл болсо, Nanotec контроллерунун байланыш орнотууларын анын продуктунун нускамасында көрсөтүлгөндөй өзгөртүңүз.
4.7 NanoLib жүктөө
Тез жана оңой негиздер менен биринчи баштоо үчүн, биздин экс-ди колдонсоңуз болот (бирок колдонбошуңуз керек).ample долбоору. 1. Аймагыңызга жараша: NanoLibти биздин сайттан жүктөп алыңыз webEMEA / APAC же AMERICA үчүн сайт. 2. Пакеттин сыдырмасын ачыңыз files / папкаларды тандап, бир параметрди тандаңыз: Тез жана оңой негиздер үчүн: Мурдагыны баштоону караңызample долбоору. Windows'та өркүндөтүлгөн ыңгайлаштыруу үчүн: Өзүңүздүн Windows долбооруңузду түзүү караңыз. Linux'та өркүндөтүлгөн ыңгайлаштыруу үчүн: Өзүңүздүн Linux долбооруңузду түзүү караңыз.

Версия: doc 1.4.2 / NanoLib 1.3.0

9

Экс баштооample долбоору

NanoLib тийиштүү түрдө жүктөлгөн менен, эксample долбоору Nanotec контроллери менен NanoLib колдонууну көрсөтөт. Эскертүү: Ар бир кадам үчүн комментарийлер берилген эксample код колдонулган функцияларды түшүндүрөт. мурдагыample долбоор төмөнкүлөрдөн турат: `*_functions_example.*' files, анда NanoLib интерфейси үчүн ишке ашыруулар камтылган `*_callback_example.*' files, алар ар кандай кайра чалууларды (сканерлөө, маалыматтар жана
журналга) `меню_*.*' file, анда меню логикасы жана Exampле.* fileнегизги программа болуп саналат, менюну түзүү жана бардык колдонулган параметрлерди инициалдаштыруу Sampler_exampле.* file, анда экс камтылганample ишке ашыруу үчүн сampлер колдонуу. Сиз көбүрөөк экс таба аласызampnanotec.com дарегиндеги Билим базасында ар кандай иштөө режимдери үчүн кээ бир кыймыл буйруктары менен. Бардык Windows же Linux колдонууга болот.
Visual Studio менен Windowsта 1. Example.sln file. 2. Мурун ачыңызample.cpp. 3. Эксти түзүңүз жана иштетиңизample код.
Linux'та Bash аркылуу 1. Булакты ачыңыз file, ачылбаган мазмуну бар папкага өтүңүз. негизги file мурунку үчүнampле
example.cpp. 2. Башта, чалыңыз:
а. Бөлүшүлгөн объекттерди көчүрүү жана ldconfig чалуу үчүн "sudo make install". б. Сыноону аткаруу үчүн "баарын жаса". 3. бин папкасы аткарылуучу экс камтыйтample file. bash боюнча: чыгаруу папкасына барып, ./ex териңизample. Эгер эч кандай ката болбосо, бөлүшүлгөн объекттериңиз тийиштүү түрдө орнотулган жана китепканаңыз колдонууга даяр. Эгерде ката ./example: бөлүшүлгөн китепканаларды жүктөөдө ката: libnanolib.so: бөлүшүлгөн объектти ача албайт file: Андай жок file же каталог болсо, жалпы объекттерди орнотуу ишке ашкан жок. Бул учурда, кийинки кадамдарды аткарыңыз. 4. /usr/local/lib ичинде жаңы папканы түзүңүз (администратордун укуктары керек). Башта, ушинтип териңиз:
sudo mkdir /usr/local/lib/nanotec
5. Бардык бөлүшүлгөн объекттерди ZIPден көчүрүңүз filelib папкасы:
орнотуу ./lib/*.so /usr/local/lib/nanotec/
6. Максаттуу папканын мазмунун төмөнкү менен текшериңиз:
ls -al /usr/local/lib/nanotec/
Ал бөлүшүлгөн объекттин тизмеси болушу керек filelib папкасынан. 7. Бул папкада ldconfig иштетиңиз:
sudo ldconfig /usr/local/lib/nanotec/
мурдагыample CLI колдонмосу катары ишке ашырылат жана меню интерфейсин камсыз кылат. Меню жазуулары контекстке негизделген жана контексттин абалына жараша иштетилет же өчүрүлөт. Алар сизге контроллер менен иштөө үчүн типтүү иш процессинен кийин ар кандай китепкана функцияларын тандоо жана аткаруу мүмкүнчүлүгүн сунуштайт: 1. Компьютерде туташкан жабдыктарды (адаптерлерди) текшерип, аларды тизмектеңиз. 2. Адаптерге байланыш түзүңүз. 3. Туташкан контроллер түзмөктөрү үчүн автобусту сканерлеңиз. 4. Түзмөккө туташтырыңыз.

Версия: doc 1.4.2 / NanoLib 1.3.0

10

5 Баштоо мурункуample долбоору
5. Китепкананын бир же бир нече функцияларын сынап көрүңүз: Контроллердин объектинин сөздүгүнө окуу/жазуу, микропрограмманы жаңыртуу, NanoJ программасын жүктөө жана иштетүү, моторду иштетүү жана аны тууралоо, конфигурациялоо жана журналдарды колдонууampлер.
6. Адегенде аппаратка, анан адаптерге туташууну жабыңыз.

Версия: doc 1.4.2 / NanoLib 1.3.0

11

Өзүңүздүн Windows долбооруңузду түзүү

NanoLib колдонуу үчүн өзүңүздүн Windows долбооруңузду түзүңүз, компиляцияңыз жана иштетиңиз.
6.1 NanoLib импорттоо
NanoLib башын импорттоо files жана MS Visual Studio аркылуу китепканалар.
1. Visual Studio ачыңыз. 2. Жаңы долбоор түзүү аркылуу > Console App C++ > Кийинки: Долбоордун түрүн тандаңыз. 3. Solution Explorerде долбоор папкасын түзүү үчүн долбооруңузду (бул жерде: NanolibTest) атаңыз. 4. Finish тандаңыз. 5. Терезелерди ачыңыз file изилдөөчү жана жаңы түзүлгөн долбоордун папкасына өтүңүз. 6. Эки жаңы папканы түзүңүз, inc жана lib. 7. NanoLib пакет папкасын ачыңыз. 8. Ал жерден: Башты көчүрүңүз files камтуу папкасынан сиздин долбоор папкаңызга inc жана бардык .lib жана .dll
files жаңы долбоордун папкаңызга lib. 9. Долбооруңуздун папкаңыздын структурасын текшериңиз, мисалыampле:

Nanotic-NanoLib-C++-Programming-FIG- (2)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.voxproj. NanolibTest.vcxproj.user NanolibTest.sln
6.2 Долбооруңузду конфигурациялаңыз
NanoLib долбоорлорун орнотуу үчүн MS Visual Studio ичиндеги Solution Explorerди колдонуңуз. Эскертүү: NanoLibтин туура иштеши үчүн Visual C++ долбоорунун жөндөөлөрүндө релизди (дебаг эмес!) конфигурациясын тандаңыз; андан кийин C++ кайра бөлүштүрүлүүчү [2022] VC иштөө убакыттары менен долбоорду түзүп, байланыштырыңыз.
1. Solution Explorerде: Долбооруңуздун папкасына өтүңүз (бул жерде: NanolibTest). 2. Контексттик менюну ачуу үчүн папканы бирге басыңыз. 3. Properties тандаңыз. 4. Бардык конфигурацияларды жана Бардык платформаларды иштетиңиз. 5. C/C++ тандап, Кошумча каталогдорго өтүңүз. 6. Кыстаруу: $(ProjectDir)Nanolib/includes;%(AdditionalIncludeDirectories) 7. Linkerди тандап, Кошумча китепкана каталогуна өтүңүз. 8. Кыстарыңыз: $(ProjectDir)Nanolib;%(AdditionalLibraryDirectories) 9. Linkerди кеңейтиңиз жана Киргизүүнү тандаңыз. 10.Кошумча көз карандылыктарга өтүп, төмөнкүнү киргизиңиз: nanolib.lib;%(AdditionalDependencies) 11.OK аркылуу ырастаңыз.

Версия: doc 1.4.2 / NanoLib 1.3.0

12

6 Өзүңүздүн Windows долбоорун түзүү
12. Configuration > C++ > Language > Language Standard > ISO C++ 17 Standard бөлүмүнө өтүңүз жана тил стандартын C++ 17 (/std:c++17) кылып коюңуз.
6.3 Долбооруңузду түзүңүз
NanoLib долбоорун MS Visual Studio'до түзүңүз. 1. Негизги *.cpp ачыңыз file (бул жерде: nanolib_example.cpp) жана керек болсо кодду түзөтүңүз. 2. Build > Configuration Manager тандаңыз. 3. Active Solution платформаларын x64 кылып өзгөртүңүз. 4. Жабуу аркылуу ырастаңыз. 5. Build > Build Solution тандаңыз. 6. Ката жокпу? Сиздин компиляцияңыз тийиштүү түрдө отчет бергендигин текшериңиз:
1>—— Таза башталды: Долбоор: NanolibTest, Конфигурация: Debug x64 —–========== Таза: 1 ийгиликтүү, 0 ишке ашкан жок, 0 өткөрүп жиберилди ==========

Версия: doc 1.4.2 / NanoLib 1.3.0

13

7 Өзүңүздүн Linux долбоорун түзүү
7 Өзүңүздүн Linux долбоорун түзүү
NanoLib колдонуу үчүн өзүңүздүн Linux долбооруңузду түзүңүз, компиляцияңыз жана иштетиңиз. 1. Ачылган NanoLib орнотуу комплектинде: Ачык /nanotec_nanolib. 2. tar.gz сайтынан бардык жалпы объекттерди табыңыз file. 3. Бир вариантты тандаңыз: Ар бир libти Make менен орнотуңузfile же кол менен.
7.1 Make менен бөлүшүлгөн объекттерди орнотууfile
Make колдонуңузfile бардык демейки *.so автоматтык орнотуу үчүн Linux Bash менен fileс. 1. Via Bash: жасоону камтыган папкага өтүңүзfile. 2. Бөлүшүлгөн объекттерди төмөнкү аркылуу көчүрүңүз:
sudo make install 3. Төмөнкү аркылуу ырастаңыз:
ldconfig
7.2 Жалпы объекттерди кол менен орнотуңуз
Бардык *.so орнотуу үчүн Bash колдонуңуз fileNanoLib кол менен. 1. Via 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. Via 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 натыйжасы = accessor->listAvailableBusHardware();
if(result.hasError()) { std::cout << result.getError() << std::endl; }
else{ std::cout << “Ийгилик” << std::endl; }
аксессуарды жок кылуу; кайтаруу 0; }
4. Долбооруңуздун папкаңыздын структурасын текшериңиз:

Nanotic-NanoLib-C++-Programming-FIG- (3)
. NanoLibTest
inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result.hpp NanoLibTest.cpp
7.4 Долбооруңузду түзүңүз жана сынаңыз
Linux NanoLib'иңизди Bash аркылуу колдонууга даяр кылыңыз.
1. Via 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. Сыноо программасын төмөнкү аркылуу иштетиңиз:
./test
4. Сиздин Bash тийиштүү түрдө отчет берип жаткандыгын текшериңиз:
ийгилик

Версия: doc 1.4.2 / NanoLib 1.3.0

15

8 Класстар/функциялар маалымдамасы

8 Класстар/функциялар маалымдамасы

NanoLib'тин колдонуучу интерфейсинин класстарынын жана алардын мүчө функцияларынын тизмесин бул жерден табыңыз. Функциянын типтүү сүрөттөлүшү кыска киришүүнү, функциянын аныктамасын жана параметр/кайтаруу тизмесин камтыйт:

ExampleFunction () Функция эмне кылаарын кыскача айтып берет.
virtual void nlc::NanoLibAccessor::МисampleFunction (Param_a const & param_a, Param_b const & param_B)

Параметрлер param_a param_b
ReultVoid кайтарат

Керек болсо кошумча комментарий. Керек болсо кошумча комментарий.

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 () Жеткиликтүү fieldbus жабдыктарын тизмелөө үчүн бул функцияны колдонуңуз.
virtual ResultBusHwIds nlc::NanoLibAccessor::listAvailableBusHardware ()

ReultBusHwIds кайтарат

Fieldbus ID массивди берет.

openBusHardwareWithProtocol () Бул функцияны автобус жабдыктарын туташтыруу үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (BusHardwareId const & busHwId, BusHardwareOptions const & busHwOpt)

Параметрлер busHwId busHwOpt
ReultVoid кайтарат

Ачыла турган талаа автобусун белгилейт. Fieldbus ачуу параметрлерин белгилейт. Void функциясынын иштегенин ырастайт.

isBusHardwareOpen () Бул функцияны сиздин фельдбус аппараттык байланышыңыз ачык экенин текшерүү үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (const BusHardwareId & busHwId, const BusHardwareOptions & busHwOpt)

Версия: doc 1.4.2 / NanoLib 1.3.0

16

8 Класстар/функциялар маалымдамасы

Параметрлер BusHardwareId Чындыкты кайтарат
жалган

Ачыла турган ар бир талаа автобусун белгилейт. Аппараттык камсыздоо ачык. Аппараттык камсыздоо жабык.

getProtocolSpecificAccessor () Бул функцияны протоколго тиешелүү аксессуар объектисин алуу үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::getProtocolSpecificAccessor (BusHardwareId const & busHwId)

Параметрлер busHwId ReultVoid

Аксессорду алуу үчүн талаа автобусун белгилейт. Void функциясынын иштегенин ырастайт.

getProfinetDCP () Profinet DCP интерфейсине шилтемени кайтаруу үчүн бул функцияны колдонуңуз.
виртуалдык ProfinetDCP & getProfinetDCP ()

ProfinetDCP кайтарат

getSamplerInterface () s шилтемесин алуу үчүн бул функцияны колдонуңузampler интерфейси.
виртуалдык СamplerInterface & getSamplerInterface ()

С кайтаратamplerInterface

с га кайрылатampler интерфейс классы.

setBusState () Бул функцияны автобус протоколуна тиешелүү абалды коюу үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::setBusState (const BusHardwareId & busHwId, const std::string & state)

Параметрлер busHwId абалы
ReultVoid кайтарат

Ачыла турган талаа автобусун белгилейт. Саптын мааниси катары автобуска тиешелүү абалды дайындайт. Void функциясынын иштегенин ырастайт.

scanDevices () Тармактагы түзмөктөрдү издөө үчүн бул функцияны колдонуңуз.
virtual ResultDeviceIds nlc::NanoLibAccessor::scanDevices (const BusHardwareId & busHwId, NlcScanBusCallback* кайра чалуу)

Параметрлер busHwId кайра чалуу
ResultDeviceIds IOError кайтарат

Скандоо үчүн талаа автобусун белгилейт. NlcScanBusCallback прогресске байкоочу. Түзмөктүн ID массивин берет. Аппарат табылган жок деп кабарлайт.

Версия: doc 1.4.2 / NanoLib 1.3.0

17

8 Класстар/функциялар маалымдамасы

addDevice ()
Бул функцияны deviceId тарабынан сүрөттөлгөн автобус түзмөгүн NanoLibдин ички түзмөктөр тизмесине кошуу жана ал үчүн deviceHandle кайтаруу үчүн колдонуңуз.
virtual ResultDeviceHandle nlc::NanoLibAccessor::addDevice (DeviceId const & deviceId)

Параметрлер deviceId ReultDeviceHandle

Тизмеге кошуу үчүн түзмөктү белгилейт. Аппараттын туткасын берет.

connectDevice () Бул функцияны түзмөктү deviceHandle аркылуу туташтыруу үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::connectDevice (DeviceHandle const deviceHandle)

Параметрлер deviceHandle Returns ResultVoid
IOError

NanoLib кайсы автобус түзмөгүнө туташаарын белгилейт. Void функциясынын иштегенин ырастайт. Аппарат табылган жок деп кабарлайт.

getDeviceName () Бул функцияны deviceHandle аркылуу аппараттын атын алуу үчүн колдонуңуз.
virtual ResultString nlc::NanoLibAccessor::getDeviceName (DeviceHandle const deviceHandle)

Параметрлер deviceHandle Returns ResultString

NanoLib кайсы автобус түзмөгүнүн аталышын көрсөтөт. Түзмөктүн аталыштарын сап катары жеткирет.

getDeviceProductCode () Бул функцияны deviceHandle аркылуу түзмөктүн продукт кодун алуу үчүн колдонуңуз.
virtual ResultInt nlc::NanoLibAccessor::getDeviceProductCode (DeviceHandle const deviceHandle)

Параметрлер deviceHandle Returns ResultInt

NanoLib өнүм кодун кайсы автобус аппараты үчүн алаарын көрсөтөт. Продукт коддорун бүтүн сан катары берет.

getDeviceVendorId () Бул функцияны deviceHandle аркылуу түзмөк сатуучу ID алуу үчүн колдонуңуз.
virtual ResultInt nlc::NanoLibAccessor::getDeviceVendorId (DeviceHandle const deviceHandle)

Параметрлер deviceHandle Returns ResultInt
ResourceUnailable

NanoLib кайсы автобус түзмөгү үчүн сатуучунун идентификаторун алаарын көрсөтөт. Сатуучунун ID'син бүтүн сан катары берет. эч кандай маалымат табылган жок деп билдирет.

Версия: doc 1.4.2 / NanoLib 1.3.0

18

8 Класстар/функциялар маалымдамасы

getDeviceId () NanoLib ички тизмесинен белгилүү бир аппараттын ID алуу үчүн бул функцияны колдонуңуз.
virtual ResultDeviceId nlc::NanoLibAccessor::getDeviceId (DeviceHandle const deviceHandle)

Параметрлер deviceHandle ReultDeviceId

NanoLib кайсы автобус түзмөгү үчүн түзмөктүн идентификаторун алат. Түзмөктүн идентификаторун берет.

getDeviceIds () NanoLib ички тизмесинен бардык түзмөктөрдүн ID алуу үчүн бул функцияны колдонуңуз.
virtual ResultDeviceIds nlc::NanoLibAccessor::getDeviceIds ()

ResultDeviceIds кайтарат

Түзмөктүн ID тизмесин берет.

getDeviceUid () Бул функцияны deviceHandle аркылуу түзмөктүн уникалдуу ID (96 бит / 12 байт) алуу үчүн колдонуңуз.
virtual ResultArrayByte nlc::NanoLibAccessor::getDeviceUid (DeviceHandle const deviceHandle)

Параметрлер deviceHandle ReultArrayByte
ResourceUnailable

NanoLib кайсы автобус түзмөгү үчүн уникалдуу идентификатор алаарын белгилейт. Уникалдуу идентификаторлорду байт массиви катары берет. эч кандай маалымат табылган жок деп билдирет.

getDeviceSerialNumber () Бул функцияны deviceHandle аркылуу аппараттын сериялык номерин алуу үчүн колдонуңуз.
virtual ResultString NanolibAccessor::getDeviceSerialNumber (DeviceHandle const deviceHandle)

Параметрлер deviceHandle Returns ResultString
ResourceUnailable

NanoLib кайсы автобус аппараты үчүн сериялык номерди алаарын белгилейт. Сериялык номерлерди сап катары жеткирет. эч кандай маалымат табылган жок деп билдирет.

getDeviceHardwareGroup () DeviceHandle боюнча автобустун аппараттык тобун алуу үчүн бул функцияны колдонуңуз.
virtual ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareGroup (DeviceHandle const deviceHandle)

Параметрлер deviceHandle Returns ResultInt

NanoLib аппараттык тобун кайсы автобус аппараты үчүн алаарын белгилейт.
Аппараттык топторду бүтүн сан катары жеткирет.

getDeviceHardwareVersion () deviceHandle боюнча автобустун аппараттык версиясын алуу үчүн бул функцияны колдонуңуз.
virtual ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareVersion (DeviceHandle const deviceHandle)

Версия: doc 1.4.2 / NanoLib 1.3.0

19

8 Класстар/функциялар маалымдамасы

Параметрлер deviceHandle

Кайра берет

ResultString ResourceUnailable

NanoLib аппараттык версиясын кайсы автобус аппараты үчүн алаарын көрсөтөт. Түзмөктүн аталыштарын сап катары жеткирет. эч кандай маалымат табылган жок деп билдирет.

getDeviceFirmwareBuildId () Бул функцияны deviceHandle аркылуу автобус түзмөгүнүн микропрограммасын куруу ID алуу үчүн колдонуңуз.
virtual ResultDeviceId nlc::NanoLibAccessor::getDeviceFirmwareBuildId (DeviceHandle const deviceHandle)

Параметрлер deviceHandle Returns ResultString

NanoLib кайсы автобус түзмөгү үчүн микропрограмма куруу идентификаторун алат.
Түзмөктүн аталыштарын сап катары жеткирет.

getDeviceBootloaderVersion () Бул функцияны deviceHandle аркылуу автобус аппаратынын жүктөөчү версиясын алуу үчүн колдонуңуз.
virtual ResultInt nlc::NanoLibAccessor::getDeviceBootloaderVersion (DeviceHandle const deviceHandle)

Параметрлер deviceHandle

Кайра берет

ResultInt ResourceUnailable

NanoLib жүктөгүчтүн версиясын кайсы автобус аппараты үчүн алаарын белгилейт. Жүктөлүүчү версияларды бүтүн сан катары жеткирет. эч кандай маалымат табылган жок деп билдирет.

getDeviceBootloaderBuildId () Бул функцияны deviceHandle аркылуу автобус түзмөгүнүн жүктөгүч түзүүчү идентификаторун алуу үчүн колдонуңуз.
virtual ResultDeviceId nlc::NanoLibAccessor:: (DeviceHandle const deviceHandle)

Параметрлер deviceHandle Returns ResultString

NanoLib кайсы автобус түзмөгү үчүн жүктөгүчтүн идентификаторун ала тургандыгын көрсөтөт.
Түзмөктүн аталыштарын сап катары жеткирет.

rebootDevice () Бул функцияны түзмөктү deviceHandle аркылуу кайра жүктөө үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::rebootDevice (const DeviceHandle deviceHandle)

Параметрлер deviceHandle Returns ResultVoid

Кайра жүктөө үчүн талаа автобусун белгилейт. Void функциясынын иштегенин ырастайт.

getDeviceState () Бул функцияны аппараттын протоколуна тиешелүү абалын алуу үчүн колдонуңуз.
virtual ResultString nlc::NanoLibAccessor::getDeviceState (DeviceHandle const deviceHandle)

Параметрлер deviceHandle

NanoLib кайсы автобус аппараты үчүн абалды алаарын белгилейт.

Версия: doc 1.4.2 / NanoLib 1.3.0

20

8 Класстар/функциялар маалымдамасы

ResultString кайтарат

Түзмөктүн аталыштарын сап катары жеткирет.

setDeviceState () Бул функцияны түзмөк протоколуна тиешелүү абалды коюу үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::setDeviceState (const DeviceHandle deviceHandle, const std::string & state)

Параметрлер deviceHandle абалы
ReultVoid кайтарат

NanoLib кайсы автобус түзмөгү үчүн абалды белгилей турганын көрсөтөт. Саптын мааниси катары автобуска тиешелүү абалды дайындайт. Void функциясынын иштегенин ырастайт.

getConnectionState ()
Бул функцияны түзмөктүн акыркы белгилүү туташуу абалын deviceHandle (= ажыратылган, туташкан, ConnectedBootloader) алуу үчүн колдонуңуз.
virtual ResultConnectionState nlc::NanoLibAccessor::getConnectionState (DeviceHandle const deviceHandle)

Параметрлер deviceHandle ReultConnectionState

NanoLib кайсы автобус түзмөгү үчүн туташуу абалын көрсөтөт.
Туташуу абалын камсыздайт (= Ажыратылган, Туташкан, ConnectedBootloader).

checkConnectionState ()
Акыркы белгилүү абал Ажыратылбаган учурда гана: Бул функцияны deviceHandle аркылуу жана бир нече режимге тиешелүү операцияларды текшерүү аркылуу белгилүү бир түзүлүштүн туташуу абалын текшерүү жана жаңыртуу үчүн колдонуңуз.
virtual ResultConnectionState nlc::NanoLibAccessor::checkConnectionState (DeviceHandle const deviceHandle)

Параметрлер deviceHandle ReultConnectionState

NanoLib кайсы автобус түзмөгү байланыш абалын текшерерин көрсөтөт.
Туташуу абалын берет (= Ажыратылбаган).

assignObjectDictionary () Объект сөздүгүн (OD) deviceHandleге өз алдынча дайындоо үчүн бул кол функциясын колдонуңуз.
virtual ResultObjectDictionary nlc::NanoLibAccessor::assignObjectDictionary (DeviceHandle const deviceHandle, ObjectDictionary const & objectDictionary)

Параметрлер deviceHandle objectDictionary
ResultObjectDictionary кайтарат

NanoLib OD кайсы автобуска ыйгарарын көрсөтөт. Объект сөздүгүнүн касиеттерин көрсөтөт.

autoAssignObjectDictionary ()
NanoLibге deviceHandleге объект сөздүгүн (OD) дайындоо үчүн бул автоматизмди колдонуңуз. Ылайыктуу OD таап жана жүктөөдө, NanoLib аны автоматтык түрдө түзмөккө дайындайт. Эскертүү: Эгерде туура келген ОД объект китепканасына жүктөлгөн болсо, NanoLib аны автоматтык түрдө берилген каталогду сканерлебестен колдонот.
virtual ResultObjectDictionary nlc::NanoLibAccessor::autoAssignObjectDictionary (DeviceHandle const deviceHandle, const std::string & dictionariesLocationPath)

Версия: doc 1.4.2 / NanoLib 1.3.0

21

8 Класстар/функциялар маалымдамасы

Параметрлер deviceHandle

Кайра берет

сөздүктөрLocationPath ResultObjectDictionary

NanoLib кайсы автобус түзмөгү үчүн ылайыктуу ODларды автоматтык түрдө сканерлей турганын белгилейт. OD каталогуна жолду көрсөтөт. Объекттин сөздүгүнүн касиеттерин көрсөтөт.

getAssignedObjectDictionary ()
Бул функцияны deviceHandle аркылуу түзмөккө ыйгарылган объект сөздүгүн алуу үчүн колдонуңуз.
virtual ResultObjectDictionary nlc::NanoLibAccessor::getAssignedObjectDictionary (DeviceHandle конст түзмөгү
туткасы)

Параметрлер deviceHandle ReultObjectDictionary

NanoLib кайсы автобус түзмөгү үчүн дайындалган OD алаарын көрсөтөт. Объект сөздүгүнүн касиеттерин көрсөтөт.

getObjectDictionaryLibrary () Бул функция OdLibrary шилтемесин кайтарат.
виртуалдык OdLibrary& nlc::NanoLibAccessor::getObjectDictionaryLibrary ()

OdLibrary&кайтарат

Бүтүндөй OD китепканасын жана анын объект сөздүктөрүн ачат.

setLoggingLevel () Бул функцияны керектүү журнал деталдарын (жана log 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)

Параметрлер *кайра чалуу 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 () Бул функцияны кайра чалуу көрсөткүчүн жокко чыгаруу үчүн колдонуңуз.
virtual void nlc::NanoLibAccessor::unsetLoggingCallback ()

readNumber () Бул функцияны объект сөздүгүнөн сандык маанини окуу үчүн колдонуңуз.
virtual ResultInt nlc::NanoLibAccessor::readNumber (const DeviceHandle deviceHandle, const OdIndex odIndex)

Параметрлер deviceHandle odIndex
ReultInt

NanoLib кайсы автобус аппаратынан окуй турганын белгилейт. Оку үчүн (суб-) индексти белгилейт. Чечирилбеген сандык маанини берет (кол коюуга, кол коюуга болбойт, 16.16 биттик маанилерди оңдоого болот).

readNumberArray () Бул функцияны объект сөздүгүнөн сандык массивдерди окуу үчүн колдонуңуз.
virtual ResultArrayInt nlc::NanoLibAccessor::readNumberArray (const DeviceHandle deviceHandle, const uint16_t index)

Параметрлер deviceHandle индекси
ReultArrayInt кайтарат

NanoLib кайсы автобус аппаратынан окуй турганын белгилейт. Массив объектинин индекси. бүтүн массивди берет.

readBytes () Бул функцияны объект сөздүгүнөн ыктыярдуу байттарды (домен объектинин маалыматтарын) окуу үчүн колдонуңуз.
virtual ResultArrayByte nlc::NanoLibAccessor::readBytes (const DeviceHandle deviceHandle, const OdIndex odIndex)

Параметрлер deviceHandle odIndex
ResultArrayByte кайтарат

NanoLib кайсы автобус аппаратынан окуй турганын белгилейт. Оку үчүн (суб-) индексти белгилейт. Байттык массивди берет.

readString () Бул функцияны объект каталогунан саптарды окуу үчүн колдонуңуз.
virtual ResultString nlc::NanoLibAccessor::readString (const DeviceHandle deviceHandle, const 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 мааниси, const OdIndex odIndex, unsigned int bitLength)

Параметрлер deviceHandle мааниси odIndex bitLength
ReultVoid кайтарат

NanoLib кайсы автобус түзмөгүнө жазарын белгилейт. чечмеленбеген маани (кол коюуга, кол коюуга, оңдоого болот 16.16). Оку үчүн (суб-) индексти белгилейт. Узундугу бит. Void функциясынын иштегенин ырастайт.

writeBytes () Бул функцияны объект каталогуна ыктыярдуу байттарды (домен объектинин маалыматтары) жазуу үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::writeBytes (const DeviceHandle deviceHandle, const std::vektor & маалыматтар, const OdIndex odIndex)

Параметрлер deviceHandle маалыматтар odIndex
ReultVoid кайтарат

NanoLib кайсы автобус түзмөгүнө жазарын белгилейт. Байт вектору / массив. Оку үчүн (суб-) индексти белгилейт. Void функциясынын иштегенин ырастайт.

Жүктөө микропрограммасы ()
Бул функцияны контроллердин микропрограммасын жаңыртуу үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::uploadFirmware (const DeviceHandle deviceHandle, const std::vector & fwData, NlcDataTransferCallback* кайра чалуу)

Параметрлер deviceHandle fwData NlcDataTransferCallback
ReultVoid кайтарат

NanoLib кайсы автобус түзмөгү жаңырарын белгилейт. Микропрограмма маалыматтарын камтыган массив. Маалыматтын прогрессине байкоочу. Void функциясынын иштегенин ырастайт.

uploadFirmwareFromFile ()
Бул функцияны контроллердин микропрограммасын жүктөө аркылуу жаңыртуу үчүн колдонуңуз file.
virtual ResultVoid nlc::NanoLibAccessor::uploadFirmwareFromFile (const DeviceHandle deviceHandle, const std::string & абсолюттукFileЖол, NlcDataTransferCallback* кайра чалуу)

Параметрлер deviceHandle абсолюттукFilePath NlcDataTransferCallback
ReultVoid кайтарат

NanoLib кайсы автобус түзмөгү жаңырарын белгилейт. Жол file микропрограмма маалыматтарын камтыган (std::string). Маалыматтын прогрессине байкоочу. Void функциясынын иштегенин ырастайт.

Версия: doc 1.4.2 / NanoLib 1.3.0

24

8 Класстар/функциялар маалымдамасы

uploadBootloader ()
Бул функцияны контроллердин жүктөгүчтү жаңыртуу үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::uploadBootloader (const DeviceHandle deviceHandle, const std::vector) & btData, NlcDataTransferCallback* кайра чалуу)

Параметрлер deviceHandle btData NlcDataTransferCallback
ReultVoid кайтарат

NanoLib кайсы автобус түзмөгү жаңырарын белгилейт. Жүктөгүч дайындарын камтыган массив. Маалыматтын прогрессине байкоочу. Void функциясынын иштегенин ырастайт.

uploadBootloaderFromFile ()
Бул функцияны жүктөө аркылуу контроллердин жүктөгүчүн жаңыртуу үчүн колдонуңуз file.
virtual ResultVoid nlc::NanoLibAccessor::uploadBootloaderFromFile (const DeviceHandle deviceHandle, const std::string & bootloaderAbsoluteFileЖол, NlcDataTransferCallback* кайра чалуу)

Параметрлер deviceHandle bootloaderAbsoluteFilePath NlcDataTransferCallback
ReultVoid кайтарат

NanoLib кайсы автобус түзмөгү жаңырарын белгилейт. Жол file жүктөгүч дайындарын камтыган (std::string). Маалыматтын прогрессине байкоочу. Void функциясынын иштегенин ырастайт.

uploadBootloaderFirmware ()
Бул функцияны контроллердин жүктөгүчтү жана микропрограмманы жаңыртуу үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmware (const DeviceHandle deviceHandle, const std::vector & btData, const std::vektor & fwData, NlcDataTransferCallback* кайра чалуу)

Параметрлер deviceHandle btData fwData NlcDataTransferCallback
ReultVoid кайтарат

NanoLib кайсы автобус түзмөгү жаңырарын белгилейт. Жүктөгүч дайындарын камтыган массив. Микропрограмма маалыматтарын камтыган массив. Маалыматтын прогрессине байкоочу. Void функциясынын иштегенин ырастайт.

uploadBootloaderFirmwareFromFile ()
Бул функцияны жүктөө аркылуу контроллердин жүктөөчүсүн жана микропрограммасын жаңыртуу үчүн колдонуңуз files.
virtual ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmwareFromFile (const DeviceHandle deviceHandle, const std::string & bootloaderAbsoluteFileЖол, const std::string & абсолюттукFileЖол, NlcDataTransferCallback* кайра чалуу)

Параметрлер deviceHandle bootloaderAbsoluteFileЖол абсолюттукFilePath NlcDataTransferCallback
ReultVoid кайтарат

NanoLib кайсы автобус түзмөгү жаңырарын белгилейт. Жол file жүктөгүч дайындарын камтыган (std::string). Жол file микропрограмма маалыматтарын камтыган (uint8_t). Маалыматтын прогрессине байкоочу. Void функциясынын иштегенин ырастайт.

Версия: doc 1.4.2 / NanoLib 1.3.0

25

8 Класстар/функциялар маалымдамасы

uploadNanoJ ()
NanoJ программасын контроллеруңузга жүктөө үчүн бул жалпы функцияны колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::uploadNanoJ (DeviceHandle const deviceHandle, std::vektor const & vmmData, NlcDataTransferCallback* кайра чалуу)

Параметрлер deviceHandle vmmData NlcDataTransferCallback
ReultVoid кайтарат

NanoLib кайсы автобус түзмөгүнө жүктөп берерин көрсөтөт. NanoJ дайындарын камтыган массив. Маалыматтын прогрессине байкоочу. Void функциясынын иштегенин ырастайт.

uploadNanoJFromFile ()
NanoJ программасын жүктөө аркылуу контроллериңизге жүктөө үчүн бул жалпы функцияны колдонуңуз file.
virtual ResultVoid nlc::NanoLibAccessor::uploadNanoJFromFile (const DeviceHandle deviceHandle, const std::string & абсолюттукFileЖол, NlcDataTransferCallback* кайра чалуу)

Параметрлер deviceHandle абсолюттукFilePath NlcDataTransferCallback
ReultVoid кайтарат

NanoLib кайсы автобус түзмөгүнө жүктөп берерин көрсөтөт. Жол file NanoJ маалыматтарын камтыган (std::string). Маалыматтын прогрессине байкоочу. Void функциясынын иштегенин ырастайт.

disconnectDevice () Бул функцияны түзмөктү аппараттын туткасы аркылуу ажыратуу үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::disconnectDevice (DeviceHandle const deviceHandle)

Параметрлер deviceHandle Returns ResultVoid

NanoLib кайсы автобус түзмөгүнөн ажыратарын көрсөтөт. Void функциясынын иштегенин ырастайт.

removeDevice () Бул функцияны NanoLib ички түзмөктөр тизмесинен түзмөгүңүздү алып салуу үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::removeDevice (const DeviceHandle deviceHandle)

Параметрлер deviceHandle Returns ResultVoid

NanoLib кайсы автобус түзмөгүн өчүрө турганын белгилейт. Void функциясынын иштегенин ырастайт.

closeBusHardware () Бул функцияны фельдбус жабдыктарыңыздан ажыратуу үчүн колдонуңуз.
virtual ResultVoid nlc::NanoLibAccessor::closeBusHardware (BusHardwareId const & busHwId)

Параметрлер busHwId ReultVoid

Ажыратыла турган талаа автобусун белгилейт. 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 жайгашкан жер маалыматы). Ыңгайлуу аталыш (= AdapterName (Port) ж.б.).

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 жайгашкан жер маалыматы). Ыңгайлуу аталыш (= AdapterName (Port) ж.б.).

BusHardwareId () [3/3] Учурдагы busHardwareId көчүрүүчү конструктор.
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)

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

Параметрлер busHardwareId

Көчүрүү үчүн автобустун аппараттык идентификаторун атайт.

барабар () Жаңы автобустун жабдык идентификаторун учурдагыларга салыштырат.
bool nlc::BusHardwareId:: барабар (BusHardwareId const жана башка) 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 const & options)

Параметрлердин параметрлери

Автобустун жабдыктарын иштетүү үчүн варианттары бар карта.

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 жана башка) const

Башка параметрлер Чындыкты кайтарат
жалган

Ошол эле класстын дагы бир объектиси. Эгерде башка объектте бирдей варианттардын бардыгы бар болсо. Эгерде башка объектте ар кандай ачкычтар же баалуулуктар бар болсо.

getOptions () Бардык кошулган ачкыч-маани жуптарын окуйт.
std::карта nlc::BusHardwareOptions::getOptions () const

Сап картасын кайтарат

toString () Бардык ачкычтарды/маанилерди сап катары кайтарат.
std::string nlc::BusHardwareId::toString () const

Сапты кайтарат
8.4 BusHwOptionsDefault
Бул демейки конфигурация опциялары классында төмөнкү жалпы атрибуттар бар:

Версия: doc 1.4.2 / NanoLib 1.3.0

29

8 Класстар/функциялар маалымдамасы

const CanBus const Сериялык const RESTfulBus const EtherCATBus

canBus = CanBus () сериялык = Сериялык () 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::сап

BAUD_RATE_1000K = "1000k" BAUD_RATE_800K = "800k" BAUD_RATE_500K = "500k" BAUD_RATE_250K = "250k" BAUD_RATE_125K = "125k" BAUD_100K "100k" BAUD_50 50k” BAUD_RATE_20K = “20k” BAUD_RATE_10K = “10k” BAUD_RATE_5K = “5k”

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::сап

START = “СТАРТ” ТОКТОТУУ = “ТОКТОТУУ” PRE_OPERATIONAL = “PRE_OPERATIONAL” RESET = “RESET_COMMUNICATION” = “RESET_COMMUNICATION”

8.8 CanOpenNmtState

Бул структура төмөнкү жалпы атрибуттарда сап маанилери катары CANopen NMT мамлекеттерин камтыйт:

const std::string const std::string const std::string const std::string const std::сап

ТОКТОТУЛГАН = “ТОКТОТУЛГАН” PRE_OPERATIONAL = “PRE_OPERATIONAL” ОПЕРАЦИЯЛЫК = “ОПЕРАЦИЯЛЫК” БАШТАЛУУ = “БАШТАЛУУ” БЕЛГИЛсиз = “БЕЛГИЛсиз”

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

EtherCATSstate::PRE_OPERATIONAL EtherCATSstate::SAFE_OPERATIONAL EtherCATSstate::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 EtherCATSstate структурасы

Бул структура төмөнкү коомдук атрибуттарда сап маанилери катары EtherCAT кул/тармак абалын камтыйт. Эскертүү: Демейки күйгүзүлгөн абал PRE_OPERATIONAL; NanoLib реалдуу убакыт эмес операциялык тутумда эч кандай ишенимдүү "ОПЕРАЦИЯЛЫК" абалды камсыз кыла албайт:

const std::string const std::string const std::string const std::string const std::string const std::сап

NONE = “NONE” INIT = “INIT” PRE_OPERATIONAL = “PRE_OPERATIONAL” ЖҮКТӨЛҮҮ = “ЖҮКТӨЛҮҮ” SAFE_OPERATIONAL = “SAFE_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 адаптерBusNumber = IxxatAdapterBusNumber ()

8.12 IxxatAdapterBusNumber

Бул структура төмөнкү коомдук атрибуттарда Ixxat usb-to-can үчүн автобус номерин камтыйт:

const std::string const std::string const std::string const std::сап

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 адаптерBusNumber = 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::сап 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_USd = std::to_string (PCAN_USBBUS5) (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) std::to_string (PCAN_USBBUS10) BUS_NUMBER_10 = std::to_string (PCAN_USBBUS11) BUS_NUMBER_11 = std::to_string (PCAN_USBBUS12) BUS_NUMBER_12 = std::to_string (PCAN_USBBUS_13)dd:13:to_string (PCAN_USBBUS14) BUS_NUMBER_14 = std::to_string (PCAN_USBBUS15) BUS_NUMBER_15 = std::to_string (PCAN_USBBUS16)

8.15 DeviceHandle
Бул класс автобустагы түзүлүштү башкаруу үчүн тутканы билдирет жана төмөнкү жалпы мүчө функцияларына ээ.

DeviceHandle () DeviceHandle (uint32_t туткасы)

Версия: doc 1.4.2 / NanoLib 1.3.0

32

8 Класстар/функциялар маалымдамасы

барабар () Берилген түзмөк туткасы менен өзүн салыштырат.
bool барабар (DeviceHandle const other) const (uint32_t handle)

toString () Түзмөктүн туткасынын сап көрүнүшүн кайтарат.
std::string toString () const

get () Түзмөктүн туткасын кайтарат.
uint32_t алуу () const

8.16 DeviceId
Автобустагы түзмөктөрдү аныктоо жана айырмалоо үчүн бул классты колдонуңуз (түзүлгөндөн баштап өзгөрүлбөйт):

Аппараттык адаптердин идентификатору

Түзмөктүн идентификатору

Description

Түзмөктүн 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 түйүн ID ж.б.). Сүрөттөмө (бош болушу мүмкүн); автобуска баш ийет.

DeviceId () [2/3] Кеңейтилген ID параметрлери менен жаңы түзмөк ID объектисин түзөт.
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId, unsigned int deviceId_, std::string const & description_ std::vektor const & extraId_, std::string const & extraStringId_)

Параметрлер busHardwareId_ deviceId_ description_ extraId_ extraStringId_

Автобустун идентификатору. индекс; автобуска баш ийет (= CANopen түйүн ID ж.б.). Сүрөттөмө (бош болушу мүмкүн); автобуска баш ийет. Кошумча ID (бош болушу мүмкүн); мааниси автобустан көз каранды. Кошумча сап ID (бош болушу мүмкүн); мааниси автобустан көз каранды.

DeviceId () [3/3] Түзмөктүн ID объектинин көчүрмөсүн түзөт.
nlc::DeviceId::DeviceId (DeviceId const &)

Версия: doc 1.4.2 / NanoLib 1.3.0

33

8 Класстар/функциялар маалымдамасы

Параметрлер deviceId_

Көчүрүү үчүн түзмөктүн ID'си.

барабар () жаңы объекттерди учурдагы объекттерге салыштырат.
bool nlc::DeviceId:: барабар (DeviceId const жана башка) const

логикалык кайтарат

getBusHardwareId () автобустун аппараттык идентификаторун окуйт.
BusHardwareId nlc::DeviceId::getBusHardwareId () const

BusHardwareId кайтарат

getDescription () Түзмөктүн сүрөттөмөсүн окуйт (колдонулбаган болушу мүмкүн).
std::string nlc::DeviceId::getDescription () const

Сапты кайтарат

getDeviceId () Түзмөктүн идентификаторун окуйт (колдонулбаган болушу мүмкүн).
unsigned int nlc::DeviceId::getDeviceId () const

Unsigned int кайтарат

toString () Объектти сап катары кайтарат.
std::string nlc::DeviceId::toString () const

Сапты кайтарат

getExtraId () Аппараттын кошумча идентификаторун окуйт (колдонулбаган болушу мүмкүн).
const std::вектор &getExtraId () const

Кайтаруучу вектор

Кошумча идентификаторлордун вектору (бош болушу мүмкүн); мааниси автобуска жараша болот.

getExtraStringId () Түзмөктүн кошумча сап идентификаторун окуйт (колдонулбаган болушу мүмкүн).
std::string getExtraStringId () const

Версия: doc 1.4.2 / NanoLib 1.3.0

34

8 Класстар/функциялар маалымдамасы

Сапты кайтарат

Кошумча сап ID (бош болушу мүмкүн); мааниси автобуска жараша болот.

8.17 LogLevelConverter

Бул класс сиздин журнал деңгээлин сап катары кайтарат. static std::string toString (nlc::LogLevel logLevel)

8.18 LogModuleConverter

Бул класс сиздин китепканага мүнөздүү лог modulesetLoggingLevel () сап катары кайтарат.

статикалык std::string

toString (nlc::LogModule logModule)

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

8.19 ObjectDictionary
Бул класс контроллердин объект сөздүгүн билдирет жана төмөнкү жалпы мүчө функцияларына ээ: getDeviceHandle ()
virtual ResultDeviceHandle getDeviceHandle () const Кайтарат ResultDeviceHandle

getObject () virtual ResultObjectSubEntry getObject (OdIndex const odIndex) ResultObjectSubEntry кайтарат

getObjectEntry () virtual ResultObjectEntry getObjectEntry (uint16_t индекси)

ResultObjectEntry кайтарат

Объекттин касиеттери жөнүндө маалымат берет.

getXmlFileАты () virtual ResultString getXmlFileName () const

ResultString кайтарат

XML кайтарат file сап катары ат.

readNumber () virtual ResultInt readNumber (OdIndex const odIndex) ReultInt
readNumberArray () virtual ResultArrayInt readNumberArray (uint16_t const индекси)

Версия: doc 1.4.2 / NanoLib 1.3.0

35

8 Класстар/функциялар маалымдамасы
ReultArrayInt readString () кайтарат
virtual ResultString readString (OdIndex const odIndex) ReultString readBytes () virtual ResultArrayByte readBytes (OdIndex const odIndex) ReultArrayByte writeNumber () virtual ResultVoid writeNumber (OdIndex const odIndex const64) кайтарат, ResultVoid writeBytes () виртуалдык ResultVoid writeBytes (OdIndex const OdIndex, std::vector)
const & data) Related Related Links ResultVoid OdIndex
8.20 ObjectEntry
Бул класс объект сөздүгүнүн объекттик жазуусун билдирет, төмөнкү статикалык корголгон атрибутка жана жалпы мүчө функцияларына ээ:
static nlc::ObjectSubEntry invalidObject
getName () Объекттин атын сап катары окуйт.
virtual std::string getName () const
getPrivate () Объекттин купуя экендигин текшерет.
virtual bool getPrivate () const
getIndex () Объекттин индексинин дарегин окуйт.
virtual uint16_t getIndex () const

Версия: doc 1.4.2 / NanoLib 1.3.0

36

8 Класстар/функциялар маалымдамасы

getDataType () Объекттин маалымат түрүн окуйт.
virtual nlc::ObjectEntryDataType getDataType () const

getObjectCode () Объект кодун окуйт:

Null Deftype Defstruct Var Array Record

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

virtual nlc::ObjectCode getObjectCode () const

getObjectSaveable () Объекттин сакталышын жана анын категориясын текшерет (көбүрөөк маалымат алуу үчүн продукт колдонмосун караңыз): APPLICATION, COMMUNICATION, DRIVE, MISC_CONFIG, MODBUS_RTU, NO, TUNING, CUSTOMER, ETHERNET, CANOPEN, VERIFY1020, UNKABNOWN
virtual nlc::ObjectSaveable getObjectSaveable () const

getMaxSubIndex () Бул объект тарабынан колдоого алынган субиндекстердин санын окуйт.
virtual uint8_t getMaxSubIndex () const

getSubEntry () виртуалдык nlc::ObjectSubEntry & getSubEntry (uint8_t subIndex)
Ошондой эле караңыз ObjectSubEntry.
8.21 ObjectSubEntry
Бул класс объект сөздүгүнүн объектинин субиндиксин билдирет жана төмөнкү жалпы мүчө функцияларына ээ:
getName () Объекттин атын сап катары окуйт.
virtual std::string getName () const

getSubIndex () Субиндекстин дарегин окуйт.
virtual uint8_t getSubIndex () const

Версия: doc 1.4.2 / NanoLib 1.3.0

37

8 Класстар/функциялар маалымдамасы

getDataType () Объекттин маалымат түрүн окуйт.
virtual nlc::ObjectEntryDataType getDataType () const

getSdoAccess () Субиндекстин SDO аркылуу жеткиликтүүлүгүн текшерет:

ReadOnly

1

WriteOnly

2

ReadWrite

3

NoAccess

0

virtual nlc::ObjectSdoAccessAttribute getSdoAccess () const

getPdoAccess () Субиндекстин PDO аркылуу жеткиликтүү/карталануу мүмкүндүгүн текшерет:

Tx

1

Rx

2

TxRx

3

Жок

0

virtual nlc::ObjectPdoAccessAttribute getPdoAccess () const

getBitLength () Субиндекс узундугун текшерет.
virtual uint32_t getBitLength () const

getDefaultValueAsNumeric () Сандык маалымат түрлөрү үчүн субиндекстин демейки маанисин окуйт.
virtual ResultInt getDefaultValueAsNumeric (std::string const & key) const

getDefaultValueAsString () Сап маалымат түрлөрү үчүн субиндекстин демейки маанисин окуйт.
virtual ResultString getDefaultValueAsString (std::string const & key) const

getDefaultValues ​​() Субиндекстин демейки маанилерин окуйт.
virtual std::map getDefaultValues ​​() const

Версия: doc 1.4.2 / NanoLib 1.3.0

38

8 Класстар/функциялар маалымдамасы

readNumber () Субиндекстин сандык чыныгы маанисин окуйт.
virtual ResultInt readNumber () const

readString () Субиндекстин саптын чыныгы маанисин окуйт.
virtual ResultString readString () const

readBytes () Субиндекстин байттагы чыныгы маанисин окуйт.
virtual ResultArrayByte readBytes () const

writeNumber () Субиндекске сандык маани жазат.
virtual ResultVoid writeNumber (const int64_t мааниси) const

writeBytes () Субиндекстеги маанини байт менен жазат.
virtual ResultVoid writeBytes (std :: vector const & data) const

8.22 OdIndex
Бул классты (түзүлгөндөн баштап өзгөрүлбөс) объект каталогунун индекстерин/суб-индекстерин ороп табуу үчүн колдонуңуз. Түзмөктүн OD 65535 (0xFFFF) сапка жана 255 (0xFF) тилкеге ​​ээ; үзгүлтүксүз катарлардын ортосундагы боштуктар менен. Көбүрөөк маалымат алуу үчүн CANopen стандартын жана продуктууңуздун колдонмосун караңыз.
OdIndex () Жаңы OdIndex объектин түзөт.
nlc::OdIndex::OdIndex (uint16_t индекс, uint8_t subIndex)

Параметрлер индексинин субиндекс

0дөн 65535ке чейин (0xFFFF) анын ичинде. 0дөн 255ке чейин (0xFF) анын ичинде.

getIndex () Индексти окуйт (0x0000дон 0xFFFFге чейин).
uint16_t nlc::OdIndex::getIndex () const

uint16_t кайтарат

getSubindex () Суб-индексти окуйт (0x00дөн 0xFFге чейин)
uint8_t nlc::OdIndex::getSubIndex () const

Версия: 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 () const

0xIIII:0xSS кайтарат

Демейки сап көрсөтүү

8.23 OdLibrary
XMLден ObjectDictionary классынын инстанцияларын түзүү үчүн бул программалоо интерфейсин колдонуңуз. assignObjectDictionary аркылуу сиз уникалдуу түзүлгөн идентификатордун аркасында ар бир инстанцияны белгилүү бир түзүлүшкө байлай аласыз. Ошентип түзүлгөн ObjectDictionary инстанциялары индекс боюнча жетүү үчүн OdLibrary объектисинде сакталат. ODLibrary классы ObjectDictionary элементтерин төмөнкүдөн жүктөйт file же массив, аларды сактайт жана төмөнкү жалпы мүчө функцияларына ээ:

getObjectDictionaryCount () virtual uint32_t getObjectDictionaryCount () const

getObjectDictionary () виртуалдык ResultObjectDictionary getObjectDictionary (uint32_t odIndex)

ResultObjectDictionary кайтарат

addObjectDictionaryFromFile ()
virtual ResultObjectDictionary addObjectDictionaryFromFile (std :: string const & абсолюттук XmlFileЖол)

ResultObjectDictionary кайтарат

addObjectDictionary ()
virtual ResultObjectDictionary addObjectDictionary (std::vector const & odXmlData, const std::string &xmlFileЖол = std::string ())

ResultObjectDictionary кайтарат
8.24 OdTypesHelper
Төмөнкү жалпы мүчө функцияларынан тышкары, бул класс ыңгайлаштырылган маалымат түрлөрүн камтыйт. Эскертүү: Ыңгайлаштырылган маалымат түрлөрүн текшерүү үчүн, od_types.hpp ичинде ObjectEntryDataType энум классын издеңиз.

uintToObjectCode () Белгисиз бүтүн сандарды объект кодуна айлантат:

Null Deftype

0x00 0x05

Версия: doc 1.4.2 / NanoLib 1.3.0

40

8 Класстар/функциялар маалымдамасы

Var Array Record Destruct

0x06 0x07 0x08 0x09

статикалык ObjectCode uintToObjectCode (кол коюлбаган int objectCode)

isNumericDataType () Берилиштердин түрү сандуу же жокпу, кабарлайт.
статикалык bool isNumericDataType (ObjectEntryDataType dataType)

isDefstructIndex () Объекттин аныктама түзүмүнүн индекси же жокпу маалымдайт.
статикалык bool isDefstructIndex (uint16_t typeNum)

isDeftypeIndex () Объекттин аныктама түрүнүн индекси же жокпу маалымдайт.
статикалык bool isDeftypeIndex (uint16_t typeNum)

isComplexDataType () Маалымат түрү татаал же татаал эмес экендигин билдирет.
статикалык 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 () Объектке кириш маалымат түрүнүн бит узундугу жөнүндө маалымат берет.
статикалык 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 Connection Timeout" DEFAULT_CONNECT_TIMEOUT = 200 REQUEST_TIMEOUT_OPTION_NAME = "RESPONSE_TIMEOUT_OPTION_NAME" = 200 RESPONSE_TIMEOUT_OPTION_NAME "Жооп 750 REQUEST_TIMEOUT_OPTION_NAME" XNUMX

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 мс).
virtual uint32_t nlc::ProfinetDCP::getScanTimeout () const

setScanTimeout () Түзмөктү сканерлөө таймаутун орнотот (демейки = 2000 мс).
virtual void nlc::setScanTimeout (uint32_t timeoutMsec)

getResponseTimeout () Орнотуу, баштапкы абалга келтирүү жана бүлбүлдөө операциялары үчүн түзмөктүн жооп күтүү убакыты жөнүндө кабарлайт (демейки = 1000 мс).
virtual uint32_t nlc::ProfinetDCP::getResponseTimeout () const

setResponseTimeout () Орнотуу, баштапкы абалга келтирүү жана бүлбүлдөө операциялары үчүн түзмөктүн жооп күтүү убакыты жөнүндө кабарлайт (демейки = 1000 мс).
виртуалдык жараксыз 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 мүмкүнчүлүктөрү
virtual ResultVoid nlc::ProfinetDCP::isServiceAvailable (const BusHardwareId & busHardwareId)

Параметрлер BusHardwareId Чындыкты кайтарат
жалган

Текшерүү үчүн Profinet DCP кызматынын аппараттык идентификатору. Кызмат жеткиликтүү. Кызмат жеткиликсиз.

scanProfinetDevices () Бул функцияны аппараттык шинаны Profinet түзмөктөрүнүн бар-жогуна сканерлөө үчүн колдонуңуз.
virtual ResultProfinetDevices scanProfinetDevices (const BusHardwareId & busHardwareId)

Параметрлер BusHardwareId ReultProfinetDevices

Ачыла турган ар бир талаа автобусун белгилейт. Аппараттык камсыздоо ачык.

setupProfinetDevice () Төмөнкү түзмөк орнотууларын орнотот:

Түзмөктүн аты

IP дареги

Тармак маскасы

Демейки шлюз

virtual ResultVoid nlc::setupProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice структурасы & profinetDevice, bool savePermanent)

resetProfinetDevice () Аппаратты токтотуп, аны баштапкы абалга келтирет.
virtual ResultVoid nlc::resetProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice & profinetDevice)

blinkProfinetDevice () Profinet түзмөгүнө Profinet LED жарыгын күйгүзүп баштоого буйрук берет.
virtual 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 Класстар/функциялар маалымдамасы

ReultVoid кайтарат

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 () функциясы жалганды кайтарат. getResult () аркылуу сиз натыйжанын маанисин түргө жараша окуй аласыз (ResultInt ж.б.). Чалуу болбой калса, анын себебин getError () аркылуу окуйсуз.

Корголгон атрибуттар

сап NlcErrorCode uint32_t

errorString errorCode exErrorCode

Ошондой эле, бул класс төмөнкү коомдук мүчө функцияларына ээ:

hasError () Функция чалуусунун ийгилигин окуйт.
bool nlc::Result::hasError () const

Кайра берет

чын жалган

Чалуу ишке ашкан жок. Маани окуу үчүн getError () колдонуңуз. Ийгиликтүү чалуу. Маани окуу үчүн getResult () колдонуңуз.

getError () Функция чалуу ишке ашпай калса, себебин окуйт.
const std::string nlc::Result::getError () const

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 () const
getExErrorCode () uint32_t getExErrorCode () const
8.28.1 ResultVoid
Эгер функция жараксыз деп кайтарса, NanoLib сизге ушул класстын үлгүсүн жөнөтөт. Класс натыйжа классынан коомдук функцияларды жана корголгон атрибуттарды мурастайт жана төмөнкү коомдук мүчө функцияларына ээ:
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 (Result const & result)
8.28.2 ResultInt
Эгерде функция бүтүн санды кайтарса, NanoLib сизге ушул класстын үлгүсүн жөнөтөт. Класс натыйжа классынан коомдук функцияларды / корголгон атрибуттарды мурастайт жана төмөнкү жалпы мүчө функцияларына ээ:
getResult () Функция чалуу ийгиликтүү болсо, бүтүн натыйжаны кайтарат.
int64_t getResult () const
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 (Result const & result)
8.28.3 ResultString
Эгерде функция сапты кайтарса, NanoLib сизге ушул класстын үлгүсүн жөнөтөт. Класс натыйжа классынан коомдук функцияларды/корголгон атрибуттарды мурастайт жана төмөнкү коомдук мүчө функцияларына ээ:
getResult () Функция чалуу ийгиликтүү болсо, саптын жыйынтыгын окуйт.
const std::string nlc::ResultString::getResult () const
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 (Result const & result)
8.28.4 ResultArrayByte
Эгерде функция байт массивди кайтарса, NanoLib сизге ушул класстын үлгүсүн жөнөтөт. Класс натыйжа классынан коомдук функцияларды/корголгон атрибуттарды мурастайт жана төмөнкү коомдук мүчө функцияларына ээ:
getResult () Функциянын чакыруусу ийгиликтүү болсо, байт векторун окуйт.
const std::вектор nlc::ResultArrayByte::getResult () const
const векторун кайтарат

Версия: 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 (Result const & result)
8.28.5 ResultArrayInt
Эгер функция бүтүн санды кайтарса, NanoLib сизге ушул класстын үлгүсүн жөнөтөт. Класс натыйжа классынан коомдук функцияларды/корголгон атрибуттарды мурастайт жана төмөнкү коомдук мүчө функцияларына ээ:
getResult () Функциянын чакыруусу ийгиликтүү болсо, бүтүн сан векторун окуйт.
const std::вектор nlc::ResultArrayInt::getResult () const
const векторун кайтарат
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 (Result const & result)
8.28.6 ResultBusHwIds
NanoLib сизге бул класстын мисалын жөнөтөт, эгерде функция автобустун аппараттык идентификатор массивин кайтарса. Класс натыйжа классынан коомдук функцияларды/корголгон атрибуттарды мурастайт жана төмөнкү коомдук мүчө функцияларына ээ:
getResult () Функция чакырыгы ийгиликтүү болсо, автобус-аппараттык-ID векторун окуйт.
const std::вектор nlc::ResultBusHwIds::getResult () const
Параметрлер const вектор

Версия: doc 1.4.2 / NanoLib 1.3.0

47

8 Класстар/функциялар маалымдамасы
ResultBusHwIds () Төмөнкү функциялар так автобус-аппараттык-ID-массив натыйжасын аныктоого жардам берет:
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 (Result const & result)
8.28.7 ResultDeviceId
Эгер функция түзмөктүн идентификаторун кайтарса, NanoLib сизге ушул класстын үлгүсүн жөнөтөт. Класс натыйжа классынан коомдук функцияларды/корголгон атрибуттарды мурастайт жана төмөнкү коомдук мүчө функцияларына ээ:
getResult () Функция чалуу ийгиликтүү болсо, түзмөктүн ID векторун окуйт.
DeviceId nlc::ResultDeviceId::getResult () const
const векторун кайтарат
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 (Result const & result)
8.28.8 ResultDeviceIds
Эгер функция түзмөктүн ID массивин кайтарса, NanoLib сизге ушул класстын үлгүсүн жөнөтөт. Класс натыйжа классынан коомдук функцияларды / корголгон атрибуттарды мурастайт жана төмөнкү жалпы мүчө функцияларына ээ:
getResult () Функция чалуу ийгиликтүү болсо, түзмөктүн ID векторун кайтарат.
DeviceId nlc::ResultDeviceIds::getResult () const
const векторун кайтарат

Версия: doc 1.4.2 / NanoLib 1.3.0

48

8 Класстар/функциялар маалымдамасы
ResultDeviceIds () Төмөнкү функциялар түзмөк-ID массивинин так натыйжасын аныктоого жардам берет:
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 (Result const & result)
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 (Result const & result)
8.28.10 ResultObjectDictionary
Эгер функция объект сөздүгүнүн мазмунун кайтарса, NanoLib сизге ушул класстын үлгүсүн жөнөтөт. Класс натыйжа классынан коомдук функцияларды/корголгон атрибуттарды мурастайт жана төмөнкү коомдук мүчө функцияларына ээ:
getResult () Функция чалуу ийгиликтүү болсо, түзмөктүн ID векторун окуйт.
const nlc::ObjectDictionary & nlc::ResultObjectDictionary::getResult () const

Версия: doc 1.4.2 / NanoLib 1.3.0

49

8 Класстар/функциялар маалымдамасы

Кайра берет

const вектор

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 (Result const & result)

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 (Result const & result)

8.28.12 ResultObjectEntry
NanoLib, эгерде функция объекттин жазуусун кайтарса, сизге ушул класстын үлгүсүн жөнөтөт. Класс натыйжа классынан коомдук функцияларды / корголгон атрибуттарды мурастайт жана төмөнкү жалпы мүчө функцияларына ээ:

Версия: doc 1.4.2 / NanoLib 1.3.0

50

8 Класстар/функциялар маалымдамасы
getResult () Функция чалуу ийгиликтүү болсо, түзмөктүн ID векторун кайтарат.
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 (Result const & result)
8.28.13 ResultObjectSubEntry
Эгер функция объекттин кошумча жазуусун кайтарса, NanoLib сизге ушул класстын үлгүсүн жөнөтөт. Класс натыйжа классынан коомдук функцияларды/корголгон атрибуттарды мурастайт жана төмөнкү коомдук мүчө функцияларына ээ:
getResult () Функция чалуу ийгиликтүү болсо, түзмөктүн ID векторун кайтарат.
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 (Result const & result)
8.28.14 ResultProfinetDevices
Эгерде функция Profinet түзмөгүн кайтарса, NanoLib сизге ушул класстын үлгүсүн жөнөтөт. Класс натыйжа классынан коомдук функцияларды/корголгон атрибуттарды мурастайт жана төмөнкү коомдук мүчө функцияларына ээ:

Версия: doc 1.4.2 / NanoLib 1.3.0

51

8 Класстар/функциялар маалымдамасы

getResult () Функция чалуу ийгиликтүү болсо, Profinet түзмөгүнүн векторун окуйт.
const std::вектор & getResult () const

ResultProfinetDevices () Төмөнкү функциялар Profinet түзмөктөрүн так аныктоого жардам берет.
ResultProfinetDevices (const std :: vector & profinetDevices)
ResultProfinetDevices (const Result & result)
ResultProfinetDevices (const std::string &errorText, NlcErrorCode errorCode = NlcErrorCode::GeneralError, uint32_t extendedErrorCode = 0)
8.28.15 ЖыйынтыктарampleDataArray
Эгер функция катары кайтып келсе, NanoLib сизге ушул класстын үлгүсүн жөнөтөтampмаалыматтар массиви. Класс натыйжа классынан коомдук функцияларды/корголгон атрибуттарды мурастайт жана төмөнкү коомдук мүчө функцияларына ээ:
getResult () Функция чакырыгы ийгиликтүү болсо, маалыматтар массивин окуйт.
const std::вектор <SampleData> & getResult () const

ЖыйынтыкSampleDataArray () Төмөнкү функциялар так Profinet түзмөктөрүн аныктоого жардам берет.
ЖыйынтыкSampleDataArray (const std::vektor <SampleData> жана dataArray)

ЖыйынтыкSampleDataArray (const std::string &errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t extendedErrorCode = 0)

ЖыйынтыкSampleDataArray (const ResultSampleDataArray жана башкалар)

ЖыйынтыкSampleDataArray (конст Натыйжа жана натыйжа)

8.28.16 ЖыйынтыктарamplerState
Эгер функция катары кайтып келсе, NanoLib сизге ушул класстын үлгүсүн жөнөтөтampler state.Бул класс жыйынтык классынан коомдук функцияларды/корголгон атрибуттарды мурастайт жана төмөнкү коомдук мүчө функцияларына ээ:

getResult () s окуйтampЭгерде функция чалуу ийгиликтүү болсо, абалдын вектору.
SamplerState getResult () const

С кайтаратamplerState>

Конфигурацияланбаган / Конфигурацияланган / Даяр / Иштеп жатат / Аткарылган / Ишке ашкан жок / Жокко чыгарылган

Версия: doc 1.4.2 / NanoLib 1.3.0

52

8 Класстар/функциялар маалымдамасы

ЖыйынтыкSamplerState () Төмөнкү функциялар так s аныктоого жардам беретampлер мамлекети.
ЖыйынтыкSamplerState (конст СamplerState штаты)

ЖыйынтыкSamplerState (const std::string & errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t
extendedErrorCode = 0)

ЖыйынтыкSamplerState (const ResultSamplerState жана башкалар)

ЖыйынтыкSamplerState (const Result & result)

8.29 NlcErrorCode

Эгер бир нерсе туура эмес болуп кетсе, натыйжа класстары бул тизмеде келтирилген ката коддорунун бирин кабарлайт.

Ката коду Success GeneralError BusUnailable CommunicationError ProtocolError
ODDoesNotExist ODInvalidAccess ODType дал келбеген операцияТоктурулган операцияКолдоого алынбайт InvalidOperation
InvalidArguments AccessDenied ResourceNotFound ResourceUnailable UnofFest Memory TimeOutError

C: D категориясы: Сүрөттөмө R: Себеп C: Жок. D: Ката жок. R: Операция ийгиликтүү аяктады.
C: Белгисиз. D: Белгисиз ката. R: Башка категорияга туура келбеген ийгиликсиздик.
C: Автобус. D: Аппараттык автобус жеткиликтүү эмес. R: Автобус жок, үзүлгөн же бузулган.
C: Байланыш. D: Байланыш ишенимсиз. R: Күтүлбөгөн маалыматтар, туура эмес CRC, кадр же паритет каталары ж.б.
C: Протокол. D: Протокол катасы. R: Колдоого алынбаган протокол опциясынан кийинки жооп, түзмөктүн колдоого алынбаган протоколу, протоколдогу ката (айталы, SDO сегментинин синхрондоштуруу бит) ж.б. сегментти синхрондоштуруу бит) ж.б. R: Колдоого алынбаган протокол (параметрлер) же протоколдогу ката (айталы, SDO сегментин синхрондоштуруу бит) ж.б.
C: Объект сөздүгү. D: OD дареги жок. R: Объекттин сөздүгүндө мындай дарек жок.
C: Объект сөздүгү. D: OD дарегине кирүү жараксыз. R: Окуу үчүн гана жазууга же жазууга гана арналган даректен окууга аракет кылыңыз.
C: Объект сөздүгү. D: Типтин дал келбегендиги. R: Белгиленген түргө конвертацияланбаган маани, айталы, сапты сан катары кароо аракетинде.
C: Колдонмо. D: Процесс токтотулду. R: Процесс өтүнмөнүн талабы боюнча кыскартылган. Кайта чалуу функциясы менен үзгүлтүккө учураганда гана кайтарат, айталы, автобус сканерлөөдөн.
C: Жалпы. D: Процесс колдоого алынбайт. R: Аппараттык автобус / түзмөк колдоо жок.
C: Жалпы. D: Учурдагы контекстте процесс туура эмес же учурдагы аргумент менен жараксыз. R: Буга чейин туташкан автобустарды/түзмөктөрдү кайра туташтыруу аракети. Мурунтан эле ажыратылгандарды ажыратуу аракети. Микропрограмма режиминде жүктөөчү операция аракети же тескерисинче.
C: Жалпы. D: Аргумент жараксыз. R: Туура эмес логика же синтаксис.
C: Жалпы. D: Кирүү четке кагылды. R: Суралган операцияны аткарууга укуктардын же мүмкүнчүлүктөрдүн жоктугу.
C: Жалпы. D: Көрсөтүлгөн нерсе табылган жок. R: Аппараттык автобус, протокол, аппарат, түзмөктөгү OD дареги, же file табылган жок.
C: Жалпы. D: Көрсөтүлгөн нерсе табылган жок. R: бош эмес, жок, кесип же кемчилик.
C: Жалпы. D: Эстутум жетишсиз. R: Бул буйрукту иштетүү үчүн эстутум өтө аз.
C: Жалпы. D: Процесс убакыты аяктады. R: Тайм-аут аяктагандан кийин кайтуу. Таймут түзмөктүн жооп берүү убактысы, жалпы же эксклюзивдүү ресурсту алуу убактысы же автобусту/түзмөктү ылайыктуу абалга которуу убактысы болушу мүмкүн.

Версия: doc 1.4.2 / NanoLib 1.3.0

53

8 Класстар/функциялар маалымдамасы

8.30 NlcCallback
Бул кайра чалуулар үчүн ата-класстын төмөнкү жалпы мүчө функциясы бар: кайра чалуу ()
Virtual 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 info, std::vektor const & devicesFound, int32_t data)

ReultVoid кайтарат
8.33 NlcLoggingCallback
Кайра чалууларды каттоо үчүн бул кайра чалуу классын колдонуңуз. 1. Ыңгайлаштырылган кайра чалуу ыкмасын ишке ашыруу менен бул классты кеңейтүүчү классты аныктаңыз 2. NanoLibAccessor тарабынан кайра чалуу орнотуу үчүн анын инстанцияларына көрсөткүчтү колдонуңуз >
setLoggingCallback (...).
виртуалдык жараксыз кайра чалуу (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
Бул классты конфигурациялоо, баштоо жана токтотуу үчүн колдонуңузampлер, же с алуу үчүнampмаалыматтарды алып жана катары алып келетampлердин абалы же акыркы ката. Класста төмөнкү коомдук мүчө функциялары бар.

Версия: doc 1.4.2 / NanoLib 1.3.0

54

8 Класстар/функциялар маалымдамасы

конфигурациялоо () катары конфигурациялайтampлер.
virtual ResultVoid nlc::SamplerInterface::configure (const DeviceHandle deviceHandle, const SamplerConfiguration & samplerConfiguration)

Параметрлер [in] deviceHandle [in] samplerConfiguration
ReultVoid кайтарат

s конфигурациялоо үчүн кандай аспапты белгилейтampлер үчүн. Конфигурация атрибуттарынын маанилерин аныктайт. Void функциясынын иштегенин ырастайт.

getData () s алатampалып келген маалыматтар.
виртуалдык натыйжаларampleDataArray nlc::SamplerInterface::getData (const DeviceHandle deviceHandle)

Параметрлер [in] deviceHandle Returns ResultSampleDataArray

Кайсы түзмөк үчүн дайындарды алуу керектигин белгилейт.
с жеткиретampled маалыматтар, эгерде s бош массив болушу мүмкүнamplerNotify баштоодо активдүү.

getLastError () катары алынатampлердин акыркы катасы.
virtual ResultVoid nlc::SamplerInterface::getLastError (const DeviceHandle deviceHandle)

ReultVoid кайтарат

Void функциясынын иштегенин ырастайт.

getState () катары алатampлердин абалы.
виртуалдык натыйжаларamplerState nlc::SamplerInterface::getState (const DeviceHandle deviceHandle)

ReultsamplerState

с жеткиретampлер мамлекети.

баштоо () катары башталатampлер.
virtual ResultVoid nlc::SamplerInterface::start (const DeviceHandle deviceHandle, SamplerNotify* сamplerNotify, int64_t applicationData)

Параметрлер [in] deviceHandle [in] SamplerNotify [in] applicationData
ReultVoid кайтарат

s баштоо үчүн кайсы аппаратты белгилейтampлер үчүн.
Кабарлоо үчүн кандай кошумча маалыматты белгилейт (nullptr болушу мүмкүн).
Опция: Колдонмого байланыштуу берилиштерди (колдонуучу аныктаган 8 биттик массив маанинин/түзмөктүн идентификаторунун/индексинин же дата убактысынын, өзгөрмөнүн/функциянын көрсөткүчүнүн ж.б.у.с.)amplerNotify.
Void функциясынын иштегенин ырастайт.

Версия: doc 1.4.2 / NanoLib 1.3.0

55

8 Класстар/функциялар маалымдамасы

токтотуу () катары токтойтampлер.
virtual ResultVoid nlc::SamplerInterface::stop (const DeviceHandle deviceHandle)

Параметрлер [in] deviceHandle Returns ResultVoid

s токтотуу үчүн кайсы аспапты белгилейтampлер үчүн. Void функциясынын иштегенин ырастайт.

8.35 СamplerConfiguration структурасы

Бул структура s маалыматтарды камтыйтampлердин конфигурациясынын параметрлери (статикалык же эмес).

Коомдук атрибуттар

std::вектор trackedAddresses

12ге чейин OD даректери болушу керекampалып барды.

uint32_t

версия

Түзүмдүн версиясы.

uint32_t

узактыгыМиллисекунд

Sampлинг узактыгы мс менен, 1ден 65535ке чейин

uint16_t

мезгилМиллисекунд

Sampузак мөөнөттүү мс.

uint16_t

numberOfSamples

Samples сумма.

uint16_t

preTriggerNumberOfSamples

Samples pre-trigger суммасы.

bool

SoftwareImplementation колдонуу

Программаны ишке ашырууну колдонуу.

bool

NewFWS колдонууamplerImplementation А менен түзмөктөр үчүн FW ишке ашырууну колдонуңуз

FW версия v24xx же жаңыраак.

SamplerMode

режими

Кадимки, кайталануучу же үзгүлтүксүз сampлинг.

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 = TC_GR0 = 14xEA0 TC_GREATER_OR_EQUAL = 15x0 TC_LESS = 16x0 TC_LESS_OR_EQUAL = 17x0 TC_EQUAL = 18x0 TC_NOT_EQUAL = 19x0A TC_ONE_EDGE = 1x0B TC_MULTI_x1xVC = trigerIn, Ogd0

SamplerTrigger

SamplerTrigger

катары баштоо үчүн триггерampler?

Статикалык коомдук атрибуттар
статикалык constexpr size_t SAMPLER_CONFIGURATION_VERSION = 0x01000000 static constexpr size_t MAX_TRACKED_ADDRESSES = 12
8.36 СamplerNotify
s активдештирүү үчүн бул классты колдонуңузampкатары баштаганда эскертмелерampлер. Класс төмөнкү коомдук мүчө функциясына ээ.

Версия: doc 1.4.2 / NanoLib 1.3.0

56

8 Класстар/функциялар маалымдамасы

кабарлоо ()
Билдирүү жазуусун берет.
virtual void nlc::SamplerNotify::notify (const ResultVoid & lastError, const SamplerState samplerState, const std::vektor <SampleData> & sampleDatas, int64_t applicationData)

Параметрлер [in] lastError [in] samplerState
[in] сampleDatas [in] applicationData

s учурунда акыркы ката болгонун кабарлайтampлинг. СampБилдирүү убагындагы абал: Конфигурацияланбаган / Конфигурацияланган / Даяр / Иштеп жаткан / Аякталган / Ишке ашкан жок / Жокко чыгарылган. Сampled-маалымат массиви. Колдонмого тиешелүү маалыматтарды кабарлайт.

8.37 СampleData структурасы

Бул структура s камтыйтampалып келген маалыматтар.

uin64_t iterationNumber

0дөн башталат жана кайталануучу режимде гана көбөйөт.

std::вектор<SampledValues> S массивдерин камтыйтampбаалуулуктарды алып келди.

8.38 СampledValue структурасы

Бул структура s камтыйтampбаалуулуктарды алып келди.

in64_t мааниси uin64_t CollectTimeMsec

Көз салынган OD дарегинин маанисин камтыйт.
s салыштырмалуу миллисекунд менен чогултуу убактысын камтыйтampле башталышы.

8.39 СamplerTrigger структурасы

Бул структура s триггер орнотууларын камтыйтampлер.

SamplerTriggerCondition шарты
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_GREA0 = TC_GREATER_OR_EQUAL = 15x0 TC_LESS = 16x0 TC_LESS_OR_EQUAL = 17x0 TC_EQUAL = 18x0 TC_NOT_EQUAL = 19x0A TC_ONE_EDGE = 1x0B TC_MULTI_EDGE = 1
Триггердин OdIndex (дареги).
Шарттын мааниси же бит саны (бит нөлдөн баштап).

8.40 Сериялык түзүлүш

Сериялык байланыш параметрлериңизди жана төмөнкү жалпы атрибуттарды бул жерден табыңыз:

const std::string const SerialBaudRate

BAUD_RATE_OPTIONS_NAME = "сериялык берүү ылдамдыгы" boudRate =SerialBaudRate структурасы

Версия: doc 1.4.2 / NanoLib 1.3.0

57

8 Класстар/функциялар маалымдамасы

const std::string const SerialParity

PARITY_OPTIONS_NAME = "сериялык паритет" паритет = Сериялык паритет структурасы

8.41 SerialBaudRate структурасы

Сериялык байланыш ылдамдыгын жана төмөнкү коомдук атрибуттарды бул жерден табыңыз:

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::сап

BAUD_RATE_7200 = "7200" BAUD_RATE_9600 = "9600" BAUD_RATE_14400 = "14400" BAUD_RATE_19200 = "19200" BAUD_RATE_38400 = "38400" ATE_56000 "BAUD_56000" 57600 = "57600" BAUD_RATE_115200 = "115200" BAUD_RATE_128000 = "128000" BAUD_RATE_256000 = "256000"

8.42 Сериялык паритеттин структурасы

Сериялык паритет параметрлериңизди жана төмөнкү жалпы атрибуттарды бул жерден табыңыз:

const std::string const std::string const std::string const std::string const std::сап

NONE = “эч бири” ОДD = “так” EVEN = “жуп” MARK = “белги” СPACE = “бостук”

Версия: doc 1.4.2 / NanoLib 1.3.0

58

9 Лицензиялар

9 Лицензиялар

NanoLib API интерфейсинин аталыштары жана мурункуample баштапкы коду Nanotec Electronic GmbH & Co. KG тарабынан Creative Commons Attribution 3.0 Unported License (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 FeldkirchenGermanyTel.+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

+ Кошулган > Өзгөрүлгөн # Оңдолгон > Берилген эксamples.
+ NanoLib Modbus: Modbus VCP үчүн түзмөктү кулпулоо механизми кошулду. # NanoLib Core: Туруктуу байланыш абалын текшерүү. # NanoLib Code: Оңдолгон автобус аппараттык маалымдама алып салуу.
+ NanoLib-CANopen: Peak PCAN-USB адаптерин колдоо (IPEH-002021/002022).
> NanoLib Core: кайра чалуу интерфейси өзгөртүлдү (LogLevel LogModule менен алмаштырылды). # NanoLib Logger: Негизги жана модулдардын ортосундагы бөлүнүү оңдолду. # Modbus TCP: FW4 үчүн орнотулган микропрограмманы жаңыртуу. # EtherCAT: Core5 үчүн орнотулган NanoJ программасын жүктөө. # EtherCAT: Core5 үчүн орнотулган микропрограмманы жаңыртуу.
# Modbus RTU: Микропрограмманы жаңыртуу учурунда ылдамдыгы төмөн болгон убакытты аныктоо маселелери. # RESTful: NanoJ программасын жүктөө оңдолду.
# NanoLib модулдары Сampлер: ларды туура окууampлогикалык баалуулуктарды алып келди.
+ Java 11 бардык платформалар үчүн колдоо. + Бардык платформалар үчүн Python 3.11/3.12 колдоосу. + Жаңы кайра чалуу интерфейси (мисamples). + NanoLib Logger үчүн кайра чалуулар. > Логгерди 1.12.0 версиясына жаңыртыңыз. > NanoLib модулдары Сampler: Nanotec контроллери микропрограммасы v24xx үчүн азыр колдоо. > NanoLib модулдары Сampler: s үчүн колдонулган структурасын өзгөртүүampлер конфигурациясы. > NanoLib модулдары Сampлер: Үзгүлтүксүз режим чексиз менен синоним болуп саналат; триггердин абалы бир жолу текшерилет; саны сamples 0 болушу керек. > NanoLib модулдары Сampler: Микропрограмма режиминде маалыматтарды чогултуучу жип үчүн нормалдуу артыкчылык. > NanoLib модулдары Сampler: Даяр жана Иштеп жаткан абалдын ортосундагы өтүүнү аныктоо үчүн кайра жазылган алгоритм. # NanoLib Core: Бир эле автобустун жабдыктарын колдонгон 0 же андан көп түзмөктөрдү жабууда мындан ары мүмкүндүк бузуу (0000005xC2) болбойт. # NanoLib Core: Linux астында PEAK адаптерин тиркөөдө мындан ары сегменттөө катасы болбойт. # NanoLib модулдары Сampлер: Туура сampмикропрограмма режиминде led-маанилерди окуу. # NanoLib модулдары Сampлер: 502X: 04 туура конфигурациясы. # NanoLib модулдары Сampлер: буферлерди каналдар менен туура аралаштыруу. # NanoLib-Canopen: Төмөнкү бауд ылдамдыктарында бышыктык жана туура сканерлөө үчүн CAN тайм-ауттары көбөйдү. # NanoLib-Modbus: атайын түзмөктөр үчүн VCP аныктоо алгоритми (USB-DA-IO).
+ EtherCAT колдоосу.
+ Долбооруңузду конфигурациялоо бөлүмүндөгү VS долбоорунун жөндөөлөрү боюнча эскертүү.
+ getDeviceHardwareGroup (). + getProfinetDCP (isServiceAvailable). + getProfinetDCP (validateProfinetDeviceIp). + autoAssignObjectDictionary (). + getXmlFileАты (). + const std::string & xmlFileaddObjectDictionary ичиндеги жол (). + getSamplerInterface ().

Продукт 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

+ Кошулган > Өзгөрүлгөн # Fixed + rebootDevice (). + Ката коду ResourceUnailable for getDeviceBootloaderVersion (), ~VendorId (), ~HardwareVersion (), ~SerialNumber жана ~Uid. > firmwareUploadFromFile азыр жүктөө FirmwareFromFile (). > микропрограмманы жүктөө () азыр микропрограмманы жүктөө (). > bootloaderUploadFromFile () азыр жүктөө BootloaderFromFile (). > bootloaderUpload () азыр жүктөөчү жүктөөчү (). > bootloaderFirmwareUploadFromFile () жүктөө үчүн BootloaderFirmwareFromFile (). > bootloaderFirmwareUpload () азыр ЖүктөөчүФирmware () жүктөө. > nanojUploadFromFile () азыр NanoJFrom жүктөөFile (). > nanojUpload () азыр uploadNanoJ (). > objectDictionaryLibrary () азыр GetObjectDictionaryLibrary (). > String_String_Map азыр StringStringMap. > NanoLib-Common: Ixxat адаптери менен listAvailableBusHardware жана openBusHardwareWithProtocol тезирээк аткарылат. > NanoLib-CANopen: демейки жөндөөлөр колдонулат (1000k boudrate, Ixxat автобус номери 0), эгерде автобустун аппараттык параметрлери бош болсо. > NanoLib-RESTful: npcap/winpcap драйвери бар болсо, Windows астында Ethernet жүктөгүчтөрү менен байланышуу үчүн администратордун уруксаты эскирген. # 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- конкреттүү). + ConnectDevice () жана scanDevices () эч нерсе таппаса, IOError кайтып келет. + CanOpen / Modbus үчүн 100 мс гана номиналдык күтүү.
+ Modbus колдоосу (кошумча VCP аркылуу USB Hub). + Бөлүм Өзүңүздүн Linux долбооруңузду түзүү. + extraHardwareSpecifier to BusHardwareId (). + extraId_ жана extraStringId_ үчүн DeviceId ().
+ setBusState (). + getDeviceBootloaderBuildId (). + getDeviceFirmwareBuildId (). + getDeviceHardwareVersion (). # Мүчүлүштүктөрдү оңдоо.
Edition.

Продукт
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 программалоо, программалоо

Шилтемелер

Комментарий калтырыңыз

Сиздин электрондук почта дарегиңиз жарыяланбайт. Талап кылынган талаалар белгиленген *