ნანოტიკ-ლოგო

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-ის ფუნქციების გამოსაყენებლად შექმნით.

„`

მომხმარებლის სახელმძღვანელო NanoLib
C++

მოქმედებს პროდუქტის 1.3.0 ვერსიით

მომხმარებლის სახელმძღვანელო ვერსია: 1.4.2

დოკუმენტის მიზანი და კონვენციები

ეს დოკუმენტი აღწერს NanoLib ბიბლიოთეკის დაყენებას და გამოყენებას და შეიცავს მითითებას ყველა კლასსა და ფუნქციაზე Nanotec კონტროლერებისთვის თქვენი საკუთარი საკონტროლო პროგრამული უზრუნველყოფის დაპროგრამებისთვის. ჩვენ ვიყენებთ შემდეგ შრიფტებს:
ხაზგასმული ტექსტი აღნიშნავს ჯვარედინი მითითებას ან ჰიპერბმულს.
Examp1: NanoLibAccessor-ის ზუსტი ინსტრუქციებისთვის იხილეთ დაყენება. მაგamp2: დააინსტალირეთ Ixxat დრაივერი და შეაერთეთ CAN-to-USB ადაპტერი. დახრილი ტექსტი ნიშნავს: ეს არის დასახელებული ობიექტი, მენიუს გზა / ელემენტი, ჩანართი / file სახელი ან (საჭიროების შემთხვევაში) უცხოენოვანი გამოთქმა.
Examp1: აირჩიეთ File > ახალი > ცარიელი დოკუმენტი. გახსენით Tool ჩანართი და აირჩიეთ კომენტარი. მაგ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 და ა.შ.).
კურიერი აღნიშნავს კოდის ბლოკებს ან პროგრამირების ბრძანებებს. მაგample 1: Bash-ის მეშვეობით, გამოიძახეთ sudo make install საზიარო ობიექტების კოპირებისთვის; შემდეგ დარეკეთ ldconfig. მაგample 2: გამოიყენეთ შემდეგი NanoLibAccessor ფუნქცია NanoLib-ში შესვლის დონის შესაცვლელად:
// ***** C++ ვარიანტი *****
void setLoggingLevel(LogLevel დონე);
თამამი ტექსტი ხაზს უსვამს კრიტიკული მნიშვნელობის ცალკეულ სიტყვებს. გარდა ამისა, ფრჩხილებში ძახილის ნიშნები ხაზს უსვამს კრიტიკულ(!) მნიშვნელობას.
Examp1: დაიცავით საკუთარი თავი, სხვები და თქვენი აღჭურვილობა. დაიცავით ჩვენი ზოგადი უსაფრთხოების შენიშვნები, რომლებიც ზოგადად გამოიყენება ნანოტეკის ყველა პროდუქტზე.
Exampლე 2: საკუთარი დაცვისთვის, ასევე მიჰყევით უსაფრთხოების სპეციფიკურ შენიშვნებს, რომლებიც ეხება ამ კონკრეტულ პროდუქტს. ზმნა co-click ნიშნავს მაუსის მეორადი კლავიშის დაჭერას კონტექსტური მენიუს გასახსნელად და ა.შ.
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 მხარს უჭერს ყველა Nanotec პროდუქტს CANopen-ით, Modbus RTU-თი (ასევე USB ვირტუალურ კომ პორტზე), Modbus TCP-ით, EtherCat-ით და Profinet-ით. ძველი NanoLibs-ებისთვის: იხილეთ ცვლილებების ჟურნალი ბეჭდვაში. მხოლოდ თქვენი რისკის ქვეშ: მემკვიდრეობითი სისტემის გამოყენება. შენიშვნა: მიჰყევით მოქმედ OEM ინსტრუქციებს, რათა შეყოვნება მაქსიმალურად დაბალი დააყენოთ, თუ FTDI-ზე დაფუძნებული USB ადაპტერის გამოყენებისას პრობლემებს წააწყდებით.

მოთხოვნები (64-ბიტიანი სისტემა სავალდებულოა)
Windows 10 ან 11 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 Ubuntu 20.04 LTS-დან 24-მდე ვერსიით (ყველა x64 და arm64)
ბირთვის სათაურები და libpopt-dev პაკეტი Profinet DCP: CAP_NET_ADMIN და CAP_NET_RAW შესაძლებლობები
CANopen-ის კავშირები: Ixxat ECI დრაივერი ან Peak PCAN-USB ადაპტერი EtherCat: CAP_NET_ADMIN, CAP_NET_RAW და
CAP_SYS_NICE შესაძლებლობები RESTful: CAP_NET_ADMIN ეთნიკურ-თან კომუნიკაციის უნარი
ernet-ის ჩამტვირთავები (ასევე რეკომენდებულია: CAP_NET_RAW)

ენა, fieldbus ადაპტერები, კაბელები
C++ GCC 7 ან უფრო მაღალი (Linux)
EtherCAT: Ethernet კაბელი VCP / USB ჰაბი: ახლა ერთგვაროვანი USB USB მასობრივი შენახვა: USB კაბელი REST: Ethernet კაბელი CANopen: Ixxat USB-to-CAN V2; Na-
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 არ არის განკუთვნილი იმ აპლიკაციებისთვის, რომლებსაც სჭირდებათ სინქრონული მრავალღერძიანი მოძრაობა ან ზოგადად დროის მიმართ მგრძნობიარეა.
არავითარ შემთხვევაში არ შეგიძლიათ NanoLib-ის ინტეგრირება, როგორც უსაფრთხოების კომპონენტის, პროდუქტში ან სისტემაში. საბოლოო მომხმარებლებისთვის მიწოდებისას, Nanotec-ის მიერ წარმოებული კომპონენტის მქონე თითოეულ პროდუქტს უნდა დაურთოთ შესაბამისი გამაფრთხილებელი შეტყობინებები და ინსტრუქციები უსაფრთხო გამოყენებისა და ექსპლუატაციისთვის. Nanotec-ის მიერ გაცემული ყველა გამაფრთხილებელი შეტყობინება პირდაპირ საბოლოო მომხმარებელს უნდა გადასცეთ.
2.3 მიწოდების სფერო და გარანტია
NanoLib მოდის როგორც *.zip საქაღალდე ჩვენი ჩამოტვირთვიდან webსაიტი EMEA / APAC ან ამერიკისთვის. სათანადოდ შეინახეთ და გახსენით თქვენი ჩამოტვირთვა დაყენებამდე. NanoLib პაკეტი შეიცავს:

ვერსია: doc 1.4.2 / NanoLib 1.3.0

5

2 სანამ დაიწყებ

ინტერფეისის სათაურები, როგორც საწყისი კოდი (API)

ძირითადი ფუნქციები, როგორც ბიბლიოთეკები ორობით ფორმატში: ნანო-

ბიბლიოთეკები, რომლებიც ხელს უწყობენ კომუნიკაციას: nanolibm_ lib.dll

[yourfieldbus].dll და ა.შ.

Exampპროექტი: ყოფილიample.sln (ვიზუალური სტუდია)

პროექტი) და ყოფილიample.cpp (ძირითადი file)

გარანტიის ფარგლებისთვის, გთხოვთ, დაიცვათ ა) ჩვენი წესები და პირობები EMEA/APAC-ის ან ამერიკისთვის და ბ) ყველა ლიცენზიის პირობა. შენიშვნა: Nanotec არ არის პასუხისმგებელი მესამე მხარის აღჭურვილობის არასწორ ან არასათანადო ხარისხზე, დამუშავებაზე, მონტაჟზე, ექსპლუატაციაზე, გამოყენებასა და მოვლა-პატრონობაზე! სათანადო უსაფრთხოებისთვის, ყოველთვის დაიცავით მოქმედი OEM ინსტრუქციები.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

6

NanoLib არქიტექტურა

NanoLib-ის მოდულური პროგრამული უზრუნველყოფის სტრუქტურა საშუალებას გაძლევთ მოაწყოთ თავისუფლად რეგულირებადი ძრავის კონტროლერი/ველური ავტობუსის ფუნქციები მკაცრად წინასწარ ჩაშენებული ბირთვის გარშემო. NanoLib შეიცავს შემდეგ მოდულებს:

მომხმარებლის ინტერფეისი (API)

NanoLib ბირთვი

ინტერფეისი და დამხმარე კლასები, რომლებიც ბიბლიოთეკებს

საკომუნიკაციო ბიბლიოთეკები Fieldbus-ის სპეციფიკური ბიბლიოთეკები, რომლებიც

შედიხართ თქვენი კონტროლერის იმპლემენტაციის API ფუნქციონალურ ინტერფეისზე NanoLib-ს შორის

OD (ობიექტური ლექსიკონი)

ურთიერთქმედება ავტობუსების ბიბლიოთეკებთან.

ძირითადი და ავტობუსის აპარატურა.

საფუძველზე NanoLib core ფუნქცია-

ნაციონალურებები.

3.1 მომხმარებლის ინტერფეისი

მომხმარებლის ინტერფეისი შედგება სათაურის ინტერფეისისგან files-ის გამოყენებით შეგიძლიათ კონტროლერის პარამეტრებზე წვდომა. მომხმარებლის ინტერფეისის კლასები, როგორც აღწერილია კლასების / ფუნქციების მითითებაში, საშუალებას გაძლევთ:
შეაერთეთ როგორც აპარატურა (fieldbus ადაპტერი), ასევე კონტროლერის მოწყობილობა. კონტროლერის პარამეტრების წასაკითხად/ჩასაწერად, მიიღეთ წვდომა მოწყობილობის 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-თან მოსამზადებლად, დააინსტალირეთ MS Visual Studio C++ გაფართოებებით. Linux Bash-ის მიერ make-სა და gcc-ის ინსტალაციისთვის, გამოიძახეთ sudo apt install build-essentials. შემდეგ ჩართეთ CAP_NET_ADMIN, CAP_NET_RAW და CAP_SYS_NICE შესაძლებლობები იმ აპლიკაციისთვის, რომელიც იყენებს NanoLib-ს: 1. გამოიძახეთ sudo setcap 'cap_net_admin,cap_net_raw,cap_sys_nice+eip'
სახელი>. 2. მხოლოდ ამის შემდეგ დააინსტალირეთ თქვენი ადაპტერის დრაივერები.
4.2 Windows-ისთვის Ixxat ადაპტერის დრაივერის ინსტალაცია
მხოლოდ დრაივერის სათანადო ინსტალაციის შემდეგ შეგიძლიათ გამოიყენოთ Ixxat-ის USB-to-CAN V2 ადაპტერი. წაიკითხეთ USB დისკების პროდუქტის სახელმძღვანელო, რათა გაიგოთ, გაააქტიუროთ თუ არა ვირტუალური კომპორტი (VCP). 1. ჩამოტვირთეთ და დააინსტალირეთ Ixxat-ის VCI 4 დრაივერი Windows-ისთვის ბმულიდან www.ixxat.com2. შეაერთეთ Ixxat-ის USB-to-CAN V2 კომპაქტური ადაპტერი კომპიუტერთან USB-ის საშუალებით. 3. მოწყობილობების მენეჯერის მეშვეობით: შეამოწმეთ, სწორად არის თუ არა დაინსტალირებული/ამოცნობილი როგორც დრაივერი, ასევე ადაპტერი.
4.3 Windows-ისთვის Peak ადაპტერის დრაივერის ინსტალაცია
მხოლოდ დრაივერის სათანადო ინსტალაციის შემდეგ შეგიძლიათ გამოიყენოთ Peak-ის PCAN-USB ადაპტერი. წაიკითხეთ USB დისკების პროდუქტის სახელმძღვანელო, რათა გაიგოთ, გაააქტიუროთ თუ არა ვირტუალური კომპორტი (VCP). 1. ჩამოტვირთეთ და დააინსტალირეთ Windows მოწყობილობის დრაივერის დაყენება (= ინსტალაციის პაკეტი მოწყობილობის დრაივერებით, ხელსაწყოებით და
API-ები) http://www.peak-system.com2. შეაერთეთ Peak-ის PCAN-USB ადაპტერი კომპიუტერთან USB-ის საშუალებით. 3. მოწყობილობების მენეჯერის მეშვეობით: შეამოწმეთ, სწორად არის თუ არა დაინსტალირებული/ამოცნობილი როგორც დრაივერი, ასევე ადაპტერი.
4.4 Linux-ისთვის Ixxat ადაპტერის დრაივერის ინსტალაცია
მხოლოდ დრაივერის სათანადო ინსტალაციის შემდეგ შეგიძლიათ გამოიყენოთ Ixxat-ის USB-to-CAN V2 ადაპტერი. შენიშვნა: სხვა მხარდაჭერილ ადაპტერებს თქვენი ნებართვა სჭირდებათ sudo chmod +777/dev/ttyACM* (* მოწყობილობის ნომერი) ბრძანების გამოყენებით. წაიკითხეთ USB დისკების პროდუქტის სახელმძღვანელო, რათა გაიგოთ, გაააქტიუროთ თუ არა ვირტუალური კომპორტი (VCP). 1. დააინსტალირეთ ECI დრაივერის და დემო აპლიკაციისთვის საჭირო პროგრამული უზრუნველყოფა:
sudo apt-get update apt-get install libusb-1.0-0-dev libusb-0.1-4 libc6 libstdc++6 libgcc1 buildessential
2. ჩამოტვირთეთ ECI-for-Linux დრაივერი www.ixxat.com-დან. გახსენით იგი შემდეგი გზით:
eci_driver_linux_amd64.zip ფაილის გახსნა
3. დრაივერის ინსტალაცია შემდეგი გზით:
cd /EciLinux_amd/src/KernelModule sudo make install-usb
4. დრაივერის წარმატებული ინსტალაციის შესამოწმებლად, დემო აპლიკაციის კომპილაციით და გაშვებით:
cd /EciLinux_amd/src/EciDemos/ sudo make cd /EciLinux_amd/bin/release/ ./LinuxEciDemo

ვერსია: doc 1.4.2 / NanoLib 1.3.0

8

4 დაწყება
4.5 Linux-ისთვის Peak ადაპტერის დრაივერის ინსტალაცია
მხოლოდ დრაივერის სათანადო ინსტალაციის შემდეგ შეგიძლიათ გამოიყენოთ Peak-ის PCAN-USB ადაპტერი. შენიშვნა: სხვა მხარდაჭერილ ადაპტერებს თქვენი ნებართვა სჭირდებათ sudo chmod +777/dev/ttyACM* (* მოწყობილობის ნომერი) ბრძანების გამოყენებით. წაიკითხეთ USB დისკების პროდუქტის სახელმძღვანელო, რათა გაიგოთ, გაააქტიუროთ თუ არა ვირტუალური კომპორტი (VCP). 1. შეამოწმეთ, აქვს თუ არა თქვენს Linux-ს ბირთვის სათაურები: ls /usr/src/linux-headers-`uname -r`. თუ არა, დააინსტალირეთ
მათ: sudo apt-get install linux-headers-`uname -r` 2. ახლა კი დააინსტალირეთ libpopt-dev პაკეტი: sudo apt-get install libpopt-dev 3. ჩამოტვირთეთ საჭირო დრაივერის პაკეტი (peak-linux-driver-xxx.tar.gz) www.peak-system.com-დან. 4. მის გასახსნელად გამოიყენეთ: tar xzf peak-linux-driver-xxx.tar.gz 5. გახსნილ საქაღალდეში: კომპილაცია და დრაივერების, PCAN ბაზის ბიბლიოთეკის და ა.შ. ინსტალაცია: make all
sudo make install 6. ფუნქციის შესამოწმებლად, შეაერთეთ PCAN-USB ადაპტერი.
ა) შეამოწმეთ ბირთვის მოდული:
lsmod | grep pcan b) … და გაზიარებული ბიბლიოთეკა:
ls -l /usr/lib/libpcan*
შენიშვნა: თუ USB3-თან დაკავშირებული პრობლემები წარმოიქმნება, გამოიყენეთ USB2 პორტი.
4.6 შეაერთეთ თქვენი აპარატურა
NanoLib პროექტის გასაშვებად, ადაპტერის გამოყენებით, კომპიუტერს თავსებადი Nanotec კონტროლერი შეუერთეთ. 1. შესაბამისი კაბელის საშუალებით, კონტროლერს ადაპტერი შეუერთეთ. 2. ადაპტერი კომპიუტერს ადაპტერის მონაცემთა ფურცლის მიხედვით შეუერთეთ. 3. კონტროლერი შესაბამისი კვების წყაროს გამოყენებით ჩართეთ. 4. საჭიროების შემთხვევაში, შეცვალეთ Nanotec კონტროლერის საკომუნიკაციო პარამეტრები მისი პროდუქტის სახელმძღვანელოში მითითებული ინსტრუქციის შესაბამისად.
4.7 ჩატვირთეთ NanoLib
სწრაფი და მარტივი საფუძვლების პირველი დასაწყებად, შეგიძლიათ (მაგრამ არ უნდა) გამოიყენოთ ჩვენი ყოფილიampპროექტი. 1. თქვენი რეგიონიდან გამომდინარე: ჩამოტვირთეთ NanoLib ჩვენიდან webსაიტი EMEA / APAC ან ამერიკისთვის. 2. გახსენით პაკეტი files / საქაღალდეები და აირჩიეთ ერთი ვარიანტი: სწრაფი და მარტივი საფუძვლებისთვის: იხილეთ ყოფილი დაწყებაample project. Windows-ში გაფართოებული კონფიგურაციისთვის: იხილეთ საკუთარი Windows პროექტის შექმნა. Linux-ში გაფართოებული კონფიგურაციისთვის: იხილეთ საკუთარი Linux პროექტის შექმნა.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

9

დაწყებული ყოფილიampპროექტი

NanoLib სათანადოდ დატვირთულით, ყოფილიample პროექტი გიჩვენებთ NanoLib-ის გამოყენებას Nanotec კონტროლერთან ერთად. შენიშვნა: თითოეული ნაბიჯისთვის, კომენტარები მოწოდებულ მაგალითშიample კოდი ხსნის გამოყენებულ ფუნქციებს. ყოფილმაampპროექტი შედგება: `*_functions_ex-ისგანampლე.*' files, რომელიც შეიცავს NanoLib ინტერფეისის ფუნქციების იმპლემენტაციებს `*_callback_exampლე.*' files, რომლებიც შეიცავს სხვადასხვა უკუკავშირის იმპლემენტაციებს (სკანირება, მონაცემები და
ჟურნალირება) `menu_*.*' file, რომელიც შეიცავს მენიუს ლოგიკას და კოდს Exampლე.* file, რომელიც არის მთავარი პროგრამა, რომელიც ქმნის მენიუს და ინიციალიზაციას უკეთებს ყველა გამოყენებულ პარამეტრს S-ში.ampler_exampლე.* file, რომელიც შეიცავს ყოფილსample იმპლემენტაცია s-ისთვისampler-ის გამოყენება. შეგიძლიათ იპოვოთ მეტი ყოფილიampსხვადასხვა ოპერაციული რეჟიმისთვის განკუთვნილი რამდენიმე მოძრაობის ბრძანებით, შეგიძლიათ იხილოთ ცოდნის ბაზაში nanotec.com-ზე. ყველა მათგანის გამოყენება შესაძლებელია Windows-სა და Linux-ში.
Windows-ში Visual Studio-თი 1. გახსენით Example.sln file2. გახსენით ყოფილიample.cpp. 3. ex-ის კომპილაცია და გაშვებაample კოდი.
Linux-ში Bash-ის საშუალებით 1. გახსენით წყაროს არქივი file, გადადით საქაღალდეში, სადაც გახსნილი კონტენტია. მთავარი file ყოფილისთვისampლე არის
example.cpp. 2. bash-ში გამოიძახეთ:
ა. „sudo make install“-ით გაზიარებული ობიექტების კოპირებისა და ldconfig-ის გამოსაძახებლად. ბ. „make all“-ით სატესტო შესრულებადი ფაილის ასაგებად. 3. bin საქაღალდე შეიცავს შესრულებად ფაილს, მაგ.ample filebash-ის მეშვეობით: გადადით გამომავალი საქაღალდეში და აკრიფეთ ./exampთუ შეცდომა არ მოხდება, თქვენი გაზიარებული ობიექტები ახლა სათანადოდ არის დაინსტალირებული და თქვენი ბიბლიოთეკა მზადაა გამოსაყენებლად. თუ შეცდომა იკითხება ./example: შეცდომა გაზიარებული ბიბლიოთეკების ჩატვირთვისას: libnanolib.so: გაზიარებული ობიექტის გახსნა შეუძლებელია file: ასეთი არა file ან დირექტორიაში, გაზიარებული ობიექტების ინსტალაცია ვერ მოხერხდა. ამ შემთხვევაში, მიჰყევით შემდეგ ნაბიჯებს. 4. შექმენით ახალი საქაღალდე /usr/local/lib-ში (საჭიროა ადმინისტრატორის უფლებები). bash ფაილში აკრიფეთ:
sudo mkdir /usr/local/lib/nanotec
5. დააკოპირეთ ყველა გაზიარებული ობიექტი zip ფაილიდან file-ის lib საქაღალდე:
ინსტალაცია ./lib/*.so /usr/local/lib/nanotec/
6. შეამოწმეთ სამიზნე საქაღალდის შინაარსი შემდეგით:
ls -al /usr/local/lib/nanotec/
მასში უნდა იყოს ჩამოთვლილი გაზიარებული ობიექტი files lib საქაღალდიდან. 7. გაუშვით ldconfig ამ საქაღალდეში:
sudo ldconfig /usr/local/lib/nanotec/
ყოფილმაample დანერგილია როგორც CLI აპლიკაცია და უზრუნველყოფს მენიუს ინტერფეისს. მენიუს ელემენტები კონტექსტზეა დაფუძნებული და კონტექსტური მდგომარეობიდან გამომდინარე, მათი ჩართვა ან გამორთვა შესაძლებელია. ისინი გთავაზობენ ბიბლიოთეკის სხვადასხვა ფუნქციების არჩევისა და შესრულების შესაძლებლობას კონტროლერის დამუშავების ტიპიური სამუშაო პროცესის შესაბამისად: 1. შეამოწმეთ კომპიუტერი დაკავშირებული აპარატურის (ადაპტერების) არსებობაზე და ჩამოთვალეთ ისინი. 2. დაამყარეთ კავშირი ადაპტერთან. 3. დაასკანირეთ ავტობუსი დაკავშირებული კონტროლერის მოწყობილობებისთვის. 4. დაუკავშირდით მოწყობილობას.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

10

5 დაწყებული ყოფილიampპროექტი
5. ბიბლიოთეკის ერთი ან მეტი ფუნქციის ტესტირება: კონტროლერის ობიექტის ლექსიკონიდან/ლექსიკონში წაკითხვა/ჩაწერა, პროგრამული უზრუნველყოფის განახლება, NanoJ პროგრამის ატვირთვა და გაშვება, ძრავის გაშვება და მისი რეგულირება, ჟურნალირების კონფიგურაცია და გამოყენება.ampლერი
6. დახურეთ კავშირი, ჯერ მოწყობილობასთან, შემდეგ ადაპტერთან.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

11

საკუთარი Windows პროექტის შექმნა

შექმენით, კომპილაცია გაუკეთეთ და გაუშვით თქვენი საკუთარი Windows პროექტი NanoLib-ის გამოსაყენებლად.
6.1 NanoLib-ის იმპორტი
NanoLib-ის სათაურის იმპორტი files და ბიბლიოთეკები MS Visual Studio-ს საშუალებით.
1. გახსენით Visual Studio. 2. Create new project > Console App C++ > Next-ის მეშვეობით: აირჩიეთ პროექტის ტიპი. 3. დაარქვით თქვენს პროექტს სახელი (აქ: NanolibTest), რათა შექმნათ პროექტის საქაღალდე Solution Explorer-ში. 4. აირჩიეთ Finish. 5. გახსენით ფანჯრები file Explorer-ში გადადით ახლად შექმნილ პროექტის საქაღალდეში. 6. შექმენით ორი ახალი საქაღალდე, inc და lib. 7. გახსენით NanoLib პაკეტის საქაღალდე. 8. იქიდან: დააკოპირეთ სათაური files-ს include საქაღალდიდან თქვენი პროექტის საქაღალდეში 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.vcxproj.filters NanolibTest.vcxproj.user NanolibTest.sln
6.2 თქვენი პროექტის კონფიგურაცია
NanoLib პროექტების დასაყენებლად გამოიყენეთ MS Visual Studio-ს Solution Explorer. შენიშვნა: NanoLib-ის სწორი მუშაობისთვის, Visual C++ პროექტის პარამეტრებში აირჩიეთ გამოშვების (და არა გამართვის!) კონფიგურაცია; შემდეგ შექმენით და დააკავშირეთ პროექტი C++ გადანაწილებადი ფაილების VC გაშვების დროებთან [2022].
1. Solution Explorer-ში: გადადით თქვენი პროექტის საქაღალდეში (აქ: NanolibTest). 2. კონტექსტური მენიუს გასახსნელად დააწკაპუნეთ საქაღალდეზე. 3. აირჩიეთ Properties (თვისებები). 4. გაააქტიურეთ All configurations (ყველა კონფიგურაცია) და All platforms (ყველა პლატფორმა). 5. აირჩიეთ C/C++ და გადადით Additional Include Directories (დამატებითი ჩართვის დირექტორიები). 6. ჩასვით: $(ProjectDir)Nanolib/includes;%(AdditionalIncludeDirectories) 7. აირჩიეთ Linker (ლინკერი) და გადადით Additional Library Directories (დამატებითი ბიბლიოთეკის დირექტორიები). 8. ჩასვით: $(ProjectDir)Nanolib;%(AdditionalLibraryDirectories) 9. გააფართოვეთ Linker და აირჩიეთ Input (შეყვანა). 10. გადადით Additional Dependencies (დამატებითი დამოკიდებულებები) და ჩასვით: 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 platforms x64-ზე. 4. დაადასტურეთ Close-ის მეშვეობით. 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 პროექტის შექმნა
შექმენით, კომპილაცია გაუკეთეთ და გაუშვით თქვენი საკუთარი Linux პროექტი NanoLib-ის გამოსაყენებლად. 1. გახსნილ NanoLib ინსტალაციის ნაკრებში: გახსენით /nanotec_nanolib. 2. tar.gz ფაილში ყველა გაზიარებული ობიექტის პოვნა file3. აირჩიეთ ერთი ვარიანტი: დააინსტალირეთ თითოეული lib ან Make-ითfile ან ხელით.
7.1 გაზიარებული ობიექტების ინსტალაცია Make-ის გამოყენებითfile
გამოიყენეთ Makefile Linux Bash-ით ავტომატურად დააინსტალირეთ ყველა ნაგულისხმევი *.so ფაილი fileს. 1. Bash-ის საშუალებით: გადადით საქაღალდეში, რომელიც შეიცავს make-სfile2. გაზიარებული ობიექტების კოპირება შემდეგი გზით:
sudo make install 3. დაადასტურეთ შემდეგი გზით:
ldconfig
7.2 გაზიარებული ობიექტების ხელით ინსტალაცია
ყველა *.so-ს დასაინსტალირებლად გამოიყენეთ Bash fileNanoLib-ის ხელით ჩამოტვირთვა. 1. Bash-ის საშუალებით: შექმენით ახალი საქაღალდე /usr/local/lib-ში. 2. საჭიროა ადმინისტრატორის უფლებები! აკრიფეთ:
sudo mkdir /usr/local/lib/nanotec 3. გადადით გახსნილი ინსტალაციის პაკეტის საქაღალდეში. 4. დააკოპირეთ ყველა გაზიარებული ობიექტი lib საქაღალდიდან შემდეგი გზით:
install ./nanotec_nanolib/lib/*.so /usr/local/lib/nanotec/ 5. შეამოწმეთ სამიზნე საქაღალდის შიგთავსი შემდეგი გზით:
ls -al /usr/local/lib/nanotec/ 6. შეამოწმეთ, ჩამოთვლილია თუ არა lib საქაღალდის ყველა გაზიარებული ობიექტი. 7. გაუშვით ldconfig ამ საქაღალდეზე შემდეგი გზით:
sudo ldconfig /usr/local/lib/nanotec/
7.3 შექმენით თქვენი პროექტი
თქვენი გაზიარებული ობიექტების დაინსტალირებით: შექმენით ახალი პროექტი თქვენი Linux NanoLib-ისთვის. 1. Bash-ის საშუალებით: შექმენით ახალი პროექტის საქაღალდე (აქ: NanoLibTest) შემდეგი გზით:
mkdir NanoLibTest cd NanoLibTest
2. დააკოპირეთ სათაური files-ში include საქაღალდეში (აქ: 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();
თუ(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 თქვენი პროექტის კომპილაცია და ტესტირება
Bash-ის საშუალებით მოამზადეთ თქვენი Linux NanoLib გამოსაყენებლად.
1. Bash-ის საშუალებით: main-ის კომპილაცია file მეშვეობით:
g++ -Wall -Wextra -pedantic -I./inc -c NanoLibTest.cpp -o NanoLibTest
2. შესრულებადი ფაილის ერთმანეთთან დაკავშირება შემდეგი გზით:
g++ -Wall -Wextra -pedantic -I./inc -o test NanoLibTest.o L/usr/local/lib/nanotec -lnanolib -ldl
3. გაუშვით სატესტო პროგრამა შემდეგი გზით:
./ტესტი
4. შეამოწმეთ, სათანადოდ აცნობებს თუ არა თქვენი Bash:
წარმატება

ვერსია: doc 1.4.2 / NanoLib 1.3.0

15

8 კლასების / ფუნქციების მითითება

8 კლასების / ფუნქციების მითითება

იპოვეთ აქ NanoLib-ის მომხმარებლის ინტერფეისის კლასების სია და მათი წევრი ფუნქციები. ფუნქციის ტიპიური აღწერა მოიცავს მოკლე შესავალს, ფუნქციის განმარტებას და პარამეტრს/დაბრუნების სიას:

ExampleFunction () მოკლედ გეტყვით რას აკეთებს ფუნქცია.
ვირტუალური სიცარიელე nlc::NanoLibAccessor::ExampleFunction (Param_a const & param_a, Param_b const & param_B)

პარამეტრები param_a param_b
აბრუნებს ResultVoid

საჭიროების შემთხვევაში დამატებითი კომენტარი. საჭიროების შემთხვევაში დამატებითი კომენტარი.

8.1 NanoLibAccessor

ინტერფეისის კლასი გამოიყენება როგორც NanoLib-ის შესასვლელი წერტილი. ტიპიური სამუშაო პროცესი ასე გამოიყურება:
1. დაიწყეთ ტექნიკის სკანირებით NanoLibAccessor.listAvailableBusHardware (). 2. დააყენეთ კომუნიკაციის პარამეტრები BusHardwareOptions-ით (). 3. გახსენით აპარატურის კავშირი NanoLibAccessor.openBusHardwareWithProtocol-ით (). 4. ავტობუსის სკანირება დაკავშირებული მოწყობილობებისთვის NanoLibAccessor.scanDevices-ით (). 5. დაამატეთ მოწყობილობა NanoLibAccessor.addDevice (). 6. დაუკავშირდით მოწყობილობას NanoLibAccessor.connectDevice-ით (). 7. ოპერაციის დასრულების შემდეგ გათიშეთ მოწყობილობა NanoLibAccessor.disconnectDevice-ით (). 8. ამოიღეთ მოწყობილობა NanoLibAccessor.removeDevice (). 9. დახურეთ აპარატურის კავშირი NanoLibAccessor.closeBusHardware ().
NanoLibAccessor-ს აქვს შემდეგი საჯარო წევრის ფუნქციები:

listAvailableBusHardware () გამოიყენეთ ეს ფუნქცია, რათა ჩამოთვალოთ ხელმისაწვდომი ველი ავტობუსის აპარატურა.
ვირტუალური ResultBusHwIds nlc::NanoLibAccessor::listAvailableBusHardware ()

აბრუნებს ResultBusHwIds

აწვდის fieldbus ID მასივს.

openBusHardwareWithProtocol () გამოიყენეთ ეს ფუნქცია ავტობუსის აპარატურის დასაკავშირებლად.
virtual ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (BusHardwareId const & busHwId, BusHardwareOptions const & busHwOpt)

პარამეტრები buHwId busHwOpt
აბრუნებს ResultVoid

განსაზღვრავს გასახსნელად ველის ავტობუსს. განსაზღვრავს საველე ავტობუსის გახსნის ვარიანტებს. ადასტურებს, რომ void ფუნქცია გაშვებულია.

isBusHardwareOpen () გამოიყენეთ ეს ფუნქცია იმის შესამოწმებლად, ღიაა თუ არა თქვენი საველე ავტობუსის აპარატურის კავშირი.
virtual ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (const BusHardwareId & busHwId, const BusHardwareOptions & busHwOpt)

ვერსია: doc 1.4.2 / NanoLib 1.3.0

16

8 კლასების / ფუნქციების მითითება

პარამეტრები BusHardwareId აბრუნებს true
ყალბი

განსაზღვრავს თითოეულ საველე ავტობუსს გასახსნელად. აპარატურა ღიაა. აპარატურა დახურულია.

getProtocolSpecificAccessor () გამოიყენეთ ეს ფუნქცია პროტოკოლისთვის სპეციფიკური დამხმარე ობიექტის მისაღებად.
ვირტუალური ResultVoid nlc::NanoLibAccessor::getProtocolSpecificAccessor (BusHardwareId const & busHwId)

პარამეტრები buHwId აბრუნებს ResultVoid

განსაზღვრავს ველის ავტობუსს აქსესუარის მისაღებად. ადასტურებს, რომ void ფუნქცია გაშვებულია.

getProfinetDCP () გამოიყენეთ ეს ფუნქცია Profinet DCP ინტერფეისზე მითითების დასაბრუნებლად.
ვირტუალური ProfinetDCP და getProfinetDCP ()

აბრუნებს ProfinetDCP-ს

მიიღეთSamplerInterface () გამოიყენეთ ეს ფუნქცია s-ზე მითითების მისაღებადampler ინტერფეისი.
ვირტუალური SamplerInterface და getSampler ინტერფეისი ()

აბრუნებს სamplerინტერფეისი

ეხება სampler ინტერფეისის კლასი.

setBusState () გამოიყენეთ ეს ფუნქცია ავტობუსის პროტოკოლის სპეციფიკური მდგომარეობის დასაყენებლად.
virtual ResultVoid nlc::NanoLibAccessor::setBusState (const BusHardwareId & busHwId, const std::string & state)

პარამეტრები busHwId მდგომარეობა
აბრუნებს ResultVoid

განსაზღვრავს გასახსნელად ველის ავტობუსს. ანიჭებს ავტობუსის სპეციფიკურ მდგომარეობას, როგორც სიმებიანი მნიშვნელობა. ადასტურებს, რომ void ფუნქცია გაშვებულია.

scanDevices () გამოიყენეთ ეს ფუნქცია ქსელში მოწყობილობების სკანირებისთვის.
ვირტუალური ResultDeviceIds nlc::NanoLibAccessor::scanDevices (const BusHardwareId & busHwId, NlcScanBusCallback* უკუკავშირი)

პარამეტრები busHwId გამოძახება
აბრუნებს ResultDeviceIds IOError-ს

განსაზღვრავს საველე ავტობუსს სკანირებისთვის. NlcScanBusCallback პროგრესის მიმკვლევი. აწვდის მოწყობილობის ID მასივს. გვატყობინებს, რომ მოწყობილობა ვერ მოიძებნა.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

17

8 კლასების / ფუნქციების მითითება

მოწყობილობის დამატება ()
გამოიყენეთ ეს ფუნქცია deviceId-ით აღწერილი ავტობუსის მოწყობილობის NanoLib-ის შიდა მოწყობილობების სიაში დასამატებლად და მისთვის deviceHandle-ის დასაბრუნებლად.
ვირტუალური ResultDeviceHandle nlc::NanoLibAccessor::addDevice (მოწყობილობის Id const & მოწყობილობის Id)

პარამეტრები deviceId აბრუნებს ResultDeviceHandle

განსაზღვრავს მოწყობილობას სიაში დასამატებლად. აწვდის მოწყობილობის სახელურს.

connectDevice () გამოიყენეთ ეს ფუნქცია მოწყობილობის დასაკავშირებლად deviceHandle-ით.
ვირტუალური ResultVoid nlc::NanoLibAccessor::connectDevice (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultVoid
IO შეცდომა

განსაზღვრავს რა ავტობუსის მოწყობილობას უკავშირდება NanoLib. ადასტურებს, რომ void ფუნქცია გაშვებულია. გვატყობინებს, რომ მოწყობილობა ვერ მოიძებნა.

getDeviceName () გამოიყენეთ ეს ფუნქცია მოწყობილობის სახელის მისაღებად deviceHandle-ის მიხედვით.
ვირტუალური ResultString nlc::NanoLibAccessor::getDeviceName (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultString

განსაზღვრავს რა ავტობუსის მოწყობილობას იღებს NanoLib სახელს. აწვდის მოწყობილობების სახელებს სტრიქონის სახით.

getDeviceProductCode () გამოიყენეთ ეს ფუნქცია მოწყობილობის პროდუქტის კოდის მისაღებად deviceHandle-ით.
virtual ResultInt nlc::NanoLibAccessor::getDeviceProductCode (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultInt

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას იღებს NanoLib პროდუქტის კოდი. აწვდის პროდუქტის კოდებს მთელი რიცხვის სახით.

getDeviceVendorId () გამოიყენეთ ეს ფუნქცია მოწყობილობის გამყიდველის ID-ის მისაღებად deviceHandle-ით.
virtual ResultInt nlc::NanoLibAccessor::getDeviceVendorId (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultInt
რესურსი მიუწვდომელია

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას იღებს NanoLib გამყიდველის ID. აწვდის გამყიდველის ID-ებს მთელი რიცხვის სახით. აცნობებს, რომ მონაცემები არ მოიძებნა.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

18

8 კლასების / ფუნქციების მითითება

getDeviceId () გამოიყენეთ ეს ფუნქცია კონკრეტული მოწყობილობის ID-ის მისაღებად NanoLib-ის შიდა სიიდან.
ვირტუალური ResultDeviceId nlc::NanoLibAccessor::getDeviceId (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultDeviceId

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას იღებს NanoLib მოწყობილობის ID. აწვდის მოწყობილობის ID-ს.

getDeviceIds () გამოიყენეთ ეს ფუნქცია ყველა მოწყობილობის ID-ის მისაღებად NanoLib-ის შიდა სიიდან.
ვირტუალური ResultDeviceIds nlc::NanoLibAccessor::getDeviceIds ()

აბრუნებს ResultDeviceIds

აწვდის მოწყობილობის ID სიას.

getDeviceUid () გამოიყენეთ ეს ფუნქცია მოწყობილობის უნიკალური ID-ის მისაღებად (96 ბიტი / 12 ბაიტი) deviceHandle-ით.
virtual ResultArrayByte nlc::NanoLibAccessor::getDeviceUid (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultArrayByte
რესურსი მიუწვდომელია

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას მიიღებს NanoLib უნიკალური ID. აწვდის უნიკალურ ID-ებს ბაიტის მასივის სახით. აცნობებს, რომ მონაცემები არ მოიძებნა.

getDeviceSerialNumber () გამოიყენეთ ეს ფუნქცია მოწყობილობის სერიული ნომრის მისაღებად deviceHandle-ით.
ვირტუალური ResultString NanolibAccessor::getDeviceSerialNumber (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultString
რესურსი მიუწვდომელია

განსაზღვრავს რა ავტობუსის მოწყობილობას იღებს NanoLib სერიულ ნომერს. აწვდის სერიულ ნომრებს სტრიქონის სახით. აცნობებს, რომ მონაცემები არ მოიძებნა.

getDeviceHardwareGroup () გამოიყენეთ ეს ფუნქცია ავტობუსის მოწყობილობის აპარატურის ჯგუფის მისაღებად deviceHandle-ით.
ვირტუალური ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareGroup (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultInt

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას იღებს NanoLib ტექნიკის ჯგუფს.
აწვდის ტექნიკის ჯგუფებს მთელი რიცხვის სახით.

getDeviceHardwareVersion () გამოიყენეთ ეს ფუნქცია ავტობუსის მოწყობილობის აპარატურის ვერსიის მისაღებად deviceHandle-ით.
ვირტუალური ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareVersion (DeviceHandle const deviceHandle)

ვერსია: doc 1.4.2 / NanoLib 1.3.0

19

8 კლასების / ფუნქციების მითითება

პარამეტრები მოწყობილობის სახელური

ბრუნდება

ResultString რესურსი მიუწვდომელია

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას იღებს NanoLib აპარატურულ ვერსიას. აწვდის მოწყობილობების სახელებს სტრიქონის სახით. აცნობებს, რომ მონაცემები არ მოიძებნა.

getDeviceFirmwareBuildId () გამოიყენეთ ეს ფუნქცია ავტობუსის მოწყობილობის firmware build ID-ის მისაღებად deviceHandle-ით.
ვირტუალური ResultDeviceId nlc::NanoLibAccessor::getDeviceFirmwareBuildId (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultString

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას იღებს NanoLib firmware build ID-ს.
აწვდის მოწყობილობების სახელებს სტრიქონის სახით.

getDeviceBootloaderVersion () გამოიყენეთ ეს ფუნქცია ავტობუსის მოწყობილობის ჩამტვირთველის ვერსიის მისაღებად deviceHandle-ით.
virtual ResultInt nlc::NanoLibAccessor::getDeviceBootloaderVersion (DeviceHandle const deviceHandle)

პარამეტრები მოწყობილობის სახელური

ბრუნდება

ResultInt რესურსი მიუწვდომელია

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას იღებს NanoLib ჩამტვირთველის ვერსია. აწვდის ჩამტვირთველის ვერსიებს მთელი რიცხვის სახით. აცნობებს, რომ მონაცემები არ მოიძებნა.

getDeviceBootloaderBuildId () გამოიყენეთ ეს ფუნქცია ავტობუსის მოწყობილობის ჩამტვირთველის build ID-ის მისაღებად deviceHandle-ით.
ვირტუალური ResultDeviceId nlc::NanoLibAccessor:: (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultString

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას იღებს NanoLib ჩამტვირთველის Build ID.
აწვდის მოწყობილობების სახელებს სტრიქონის სახით.

rebootDevice () გამოიყენეთ ეს ფუნქცია მოწყობილობის გადატვირთვისთვის deviceHandle-ით.
ვირტუალური ResultVoid nlc::NanoLibAccessor::rebootDevice (const DeviceHandle deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultVoid

განსაზღვრავს ველის ავტობუსს გადატვირთვისთვის. ადასტურებს, რომ void ფუნქცია გაშვებულია.

getDeviceState () გამოიყენეთ ეს ფუნქცია მოწყობილობის პროტოკოლის სპეციფიკური მდგომარეობის მისაღებად.
ვირტუალური ResultString nlc::NanoLibAccessor::getDeviceState (DeviceHandle const 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)

პარამეტრები მოწყობილობის სახელურის მდგომარეობა
აბრუნებს ResultVoid

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას ადგენს NanoLib მდგომარეობა. ანიჭებს ავტობუსის სპეციფიკურ მდგომარეობას, როგორც სიმებიანი მნიშვნელობა. ადასტურებს, რომ void ფუნქცია გაშვებულია.

getConnectionState ()
გამოიყენეთ ეს ფუნქცია კონკრეტული მოწყობილობის ბოლო ცნობილი კავშირის მდგომარეობის მისაღებად deviceHandle-ის (= Disconnected, Connected, ConnectedBootloader) მეშვეობით.
ვირტუალური ResultConnectionState nlc::NanoLibAccessor::getConnectionState (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultConnectionState

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას იღებს NanoLib კავშირის მდგომარეობა.
აწვდის კავშირის მდგომარეობას (= გათიშული, დაკავშირებული, დაკავშირებული ჩამტვირთველი).

შემოწმების კავშირის მდგომარეობა ()
მხოლოდ იმ შემთხვევაში, თუ ბოლო ცნობილი მდგომარეობა არ იყო გათიშული: გამოიყენეთ ეს ფუნქცია კონკრეტული მოწყობილობის კავშირის მდგომარეობის შესამოწმებლად და შესაძლოა განახლებისთვის deviceHandle-ის მეშვეობით და რამდენიმე რეჟიმისთვის სპეციფიკური ოპერაციის ტესტირებით.
ვირტუალური ResultConnectionState nlc::NanoLibAccessor::checkConnectionState (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultConnectionState

განსაზღვრავს რა ავტობუსის მოწყობილობას NanoLib ამოწმებს კავშირის მდგომარეობას.
აწვდის კავშირის მდგომარეობას (= არ არის გათიშული).

assignObjectDictionary () გამოიყენეთ ეს სახელმძღვანელო ფუნქცია, რომ დამოუკიდებლად მიაკუთვნოთ ობიექტის ლექსიკონი (OD) deviceHandle-ს.
ვირტუალური ResultObjectDictionary nlc::NanoLibAccessor::assignObjectDictionary (DeviceHandle const deviceHandle, ObjectDictionary const & objectDictionary)

პარამეტრები deviceHandle objectDictionary
აბრუნებს ResultObjectDictionary

განსაზღვრავს რა ავტობუსის მოწყობილობას ანიჭებს NanoLib OD. აჩვენებს ობიექტის ლექსიკონის თვისებებს.

autoAssignObjectDictionary ()
გამოიყენეთ ეს ავტომატიზმი, რათა NanoLib-ს მიეცეს ობიექტის ლექსიკონი (OD) deviceHandle-სთვის. შესაფერისი OD-ის პოვნისა და ჩატვირთვისას, NanoLib ავტომატურად ანიჭებს მას მოწყობილობას. შენიშვნა: თუ თავსებადი OD უკვე ჩატვირთულია ობიექტების ბიბლიოთეკაში, NanoLib ავტომატურად გამოიყენებს მას წარდგენილი დირექტორიას სკანირების გარეშე.
virtual ResultObjectDictionary nlc::NanoLibAccessor::autoAssignObjectDictionary (DeviceHandle const deviceHandle, const std::string & dictionariesLocationPath)

ვერსია: doc 1.4.2 / NanoLib 1.3.0

21

8 კლასების / ფუნქციების მითითება

პარამეტრები მოწყობილობის სახელური

ბრუნდება

ლექსიკონებიLocationPath შედეგიObjectDictionary

განსაზღვრავს რომელი ავტობუსის მოწყობილობას NanoLib ავტომატურად სკანირებს შესაბამისი OD-ებისთვის. განსაზღვრავს გზას OD დირექტორიაში. აჩვენებს ობიექტის ლექსიკონის თვისებებს.

getAssignedObjectDictionary ()
გამოიყენეთ ეს ფუნქცია, რათა deviceHandle-ის მიერ მოწყობილობაზე მინიჭებული იყოს ობიექტის ლექსიკონი.
ვირტუალური ResultObjectDictionary nlc::NanoLibAccessor::getAssignedObjectDictionary (DeviceHandle const device
სახელური)

პარამეტრები deviceHandle აბრუნებს ResultObjectDictionary

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას მიიღებს NanoLib მინიჭებული OD. აჩვენებს ობიექტის ლექსიკონის თვისებებს.

getObjectDictionaryLibrary () ეს ფუნქცია აბრუნებს OdLibrary მითითებას.
ვირტუალური OdLibrary& nlc::NanoLibAccessor::getObjectDictionaryLibrary ()

აბრუნებს OdLibrary&

ხსნის მთელ OD ბიბლიოთეკას და მის ობიექტურ ლექსიკონებს.

setLoggingLevel () გამოიყენეთ ეს ფუნქცია ჟურნალის საჭირო დეტალების დასაყენებლად (და ჟურნალი file ზომა). ნაგულისხმევი დონე არის ინფორმაცია.
ვირტუალური სიცარიელე nlc::NanoLibAccessor::setLoggingLevel (LogLevel დონე)

პარამეტრების დონე

შესაძლებელია შემდეგი ჟურნალის დეტალები:

0 = კვალი 1 = გამართვა 2 = ინფორმაცია 3 = გაფრთხილება 4 = შეცდომა 5 = კრიტიკული 6 = გამორთული

ყველაზე დაბალი დონე (ყველაზე დიდი ჟურნალი file); იწერს ნებისმიერ შესაძლო დეტალს, პლუს პროგრამული უზრუნველყოფის დაწყება/შეჩერება. ჟურნალის გამართვის ინფორმაცია (= შუალედური შედეგები, გაგზავნილი ან მიღებული შინაარსი და ა.შ.) ნაგულისხმევი დონე; წერს საინფორმაციო შეტყობინებებს. აღრიცხავს პრობლემებს, რომლებიც წარმოიშვა, მაგრამ არ შეაჩერებს მიმდინარე ალგორითმს. ჟურნალი უბრალოდ სერიოზული პრობლემებია, რამაც შეაჩერა ალგორითმი. უმაღლესი დონე (ყველაზე პატარა ჟურნალი file); ირთვება გამორთვა; არანაირი შემდგომი შესვლა. საერთოდ არ არის ხე.

setLoggingCallback ()
გამოიყენეთ ეს ფუნქცია ამ უკუკავშირისთვის (და არა თავად ლოგერისთვის) ჟურნალის უკუკავშირის მაჩვენებლისა და ჟურნალის მოდულის (=ბიბლიოთეკის) დასაყენებლად.
ვირტუალური void nlc::NanoLibAccessor::setLoggingCallback (NlcLoggingCallback* callback, const nlc::LogModule & logModule)

პარამეტრები *callback logModule

უკუკავშირის მაჩვენებლის დაყენება. უკუკავშირის (და არა ჟურნალის!) თქვენს ბიბლიოთეკაზე მორგება.

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

ააქტიურებს მხოლოდ NanoLib-ის ბირთვის უკუკავშირს. ააქტიურებს მხოლოდ CANopen-ის უკუკავშირს. ააქტიურებს მხოლოდ Modbus-ის უკუკავშირს. ააქტიურებს მხოლოდ EtherCAT-ის უკუკავშირს.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

22

8 კლასების / ფუნქციების მითითება

4 = NanolibRest 5 = NanolibUSB

ააქტიურებს მხოლოდ REST-ის უკუკავშირს. ააქტიურებს მხოლოდ USB-ის უკუკავშირს.

unsetLoggingCallback () გამოიყენეთ ეს ფუნქცია, რათა გააუქმოთ ჟურნალის გამოძახების მაჩვენებელი.
ვირტუალური სიცარიელე nlc::NanoLibAccessor::unsetLoggingCallback ()

readNumber () გამოიყენეთ ეს ფუნქცია ციფრული მნიშვნელობის წასაკითხად ობიექტის ლექსიკონიდან.
virtual ResultInt nlc::NanoLibAccessor::readNumber (const DeviceHandle deviceHandle, const OdIndex odIndex)

მოწყობილობის პარამეტრები Handle odIndex
აბრუნებს ResultInt

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას კითხულობს NanoLib. განსაზღვრავს (ქვე) ინდექსს წასაკითხად. აწვდის არაინტერპრეტირებულ ციფრულ მნიშვნელობას (შეიძლება იყოს ხელმოწერილი, ხელმოუწერელი, დაფიქსირდეს 16.16 ბიტიანი მნიშვნელობები).

readNumberArray () გამოიყენეთ ეს ფუნქცია ციფრული მასივების წასაკითხად ობიექტის ლექსიკონიდან.
virtual ResultArrayInt nlc::NanoLibAccessor::readNumberArray (const DeviceHandle deviceHandle, const uint16_t ინდექსი)

პარამეტრები მოწყობილობის სახელურის ინდექსი
აბრუნებს ResultArrayInt

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას კითხულობს NanoLib. მასივის ობიექტის ინდექსი. აწვდის მთელ მასივს.

readBytes () გამოიყენეთ ეს ფუნქცია ობიექტის ლექსიკონიდან თვითნებური ბაიტების (დომენის ობიექტის მონაცემები) წასაკითხად.
virtual ResultArrayByte nlc::NanoLibAccessor::readBytes (const DeviceHandle deviceHandle, const OdIndex odIndex)

მოწყობილობის პარამეტრები Handle odIndex
აბრუნებს ResultArrayByte-ს

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას კითხულობს NanoLib. განსაზღვრავს (ქვე) ინდექსს წასაკითხად. აწვდის ბაიტის მასივს.

readString () გამოიყენეთ ეს ფუნქცია ობიექტების დირექტორიადან სტრიქონების წასაკითხად.
ვირტუალური ResultString nlc::NanoLibAccessor::readString (const DeviceHandle deviceHandle, const OdIndex odIndex)

მოწყობილობის პარამეტრები Handle odIndex
აბრუნებს ResultString

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას კითხულობს NanoLib. განსაზღვრავს (ქვე) ინდექსს წასაკითხად. აწვდის მოწყობილობების სახელებს სტრიქონის სახით.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

23

8 კლასების / ფუნქციების მითითება

writeNumber () გამოიყენეთ ეს ფუნქცია ციფრული მნიშვნელობების ჩასაწერად ობიექტის დირექტორიაში.
virtual ResultVoid nlc::NanoLibAccessor::writeNumber (const DeviceHandle deviceHandle, int64_t value, const OdIndex odIndex, unsigned int bitLength)

პარამეტრები deviceHandle მნიშვნელობა odIndex bitLength
აბრუნებს ResultVoid

განსაზღვრავს რა ავტობუსის მოწყობილობას წერს NanoLib. გაუგებარი მნიშვნელობა (შეიძლება იყოს ხელმოწერილი, ხელმოუწერელი, დაფიქსირება 16.16). განსაზღვრავს (ქვე) ინდექსს წასაკითხად. სიგრძე ბიტში. ადასტურებს, რომ void ფუნქცია გაშვებულია.

writeBytes () გამოიყენეთ ეს ფუნქცია ობიექტის დირექტორიაში თვითნებური ბაიტების (დომენის ობიექტის მონაცემები) ჩასაწერად.
virtual ResultVoid nlc::NanoLibAccessor::writeBytes (const DeviceHandle deviceHandle, const std::vector & მონაცემები, const OdIndex odIndex)

პარამეტრები მოწყობილობის დამუშავება მონაცემთა odIndex
აბრუნებს ResultVoid

განსაზღვრავს რა ავტობუსის მოწყობილობას წერს NanoLib. ბაიტის ვექტორი / მასივი. განსაზღვრავს (ქვე) ინდექსს წასაკითხად. ადასტურებს, რომ void ფუნქცია გაშვებულია.

ატვირთვაფირმვერი ()
გამოიყენეთ ეს ფუნქცია თქვენი კონტროლერის პროგრამული უზრუნველყოფის განახლებისთვის.
virtual ResultVoid nlc::NanoLibAccessor::uploadFirmware (const DeviceHandle deviceHandle, const std::vector & fwData, NlcDataTransferCallback* უკუკავშირი)

მოწყობილობის პარამეტრების მართვა fwData NlcDataTransferCallback
აბრუნებს ResultVoid

განსაზღვრავს რა ავტობუსის მოწყობილობას განაახლებს NanoLib. მასივი, რომელიც შეიცავს firmware მონაცემებს. მონაცემთა პროგრესის მკვლევარი. ადასტურებს, რომ void ფუნქცია გაშვებულია.

ატვირთეთ FirmwareFromFile ()
გამოიყენეთ ეს ფუნქცია თქვენი კონტროლერის პროგრამული უზრუნველყოფის განახლებისთვის მისი ატვირთვის გზით file.
ვირტუალური ResultVoid nlc::NanoLibAccessor::uploadFirmwareFromFile (const DeviceHandle deviceHandle, const std::string & absoluteFileგზა, NlcDataTransferCallback* უკუკავშირი)

პარამეტრები მოწყობილობის სახელური აბსოლუტურიFileგზა NlcDataTransferCallback
აბრუნებს ResultVoid

განსაზღვრავს რა ავტობუსის მოწყობილობას განაახლებს NanoLib. გზა file შეიცავს firmware მონაცემებს (std::string). მონაცემთა პროგრესის ტრეკერი. ადასტურებს, რომ void ფუნქცია გაშვებულია.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

24

8 კლასების / ფუნქციების მითითება

ატვირთვაBootloader ()
გამოიყენეთ ეს ფუნქცია თქვენი კონტროლერის ჩატვირთვის განახლებისთვის.
virtual ResultVoid nlc::NanoLibAccessor::uploadBootloader (const DeviceHandle deviceHandle, const std::vector) & btData, NlcDataTransferCallback* უკუკავშირი)

მოწყობილობის პარამეტრების მართვა btData NlcDataTransferCallback
აბრუნებს ResultVoid

განსაზღვრავს რა ავტობუსის მოწყობილობას განაახლებს NanoLib. მასივი, რომელიც შეიცავს ჩამტვირთველის მონაცემებს. მონაცემთა პროგრესის მკვლევარი. ადასტურებს, რომ void ფუნქცია გაშვებულია.

uploadBootloaderFromFile ()
გამოიყენეთ ეს ფუნქცია თქვენი კონტროლერის ჩატვირთვის მატარებლის განახლებისთვის მისი ატვირთვით file.
ვირტუალური ResultVoid nlc::NanoLibAccessor::uploadBootloaderFromFile (const DeviceHandle deviceHandle, const std::string & bootloaderAbsolute)Fileგზა, NlcDataTransferCallback* უკუკავშირი)

პარამეტრები მოწყობილობა Handle bootloaderAbsoluteFileგზა NlcDataTransferCallback
აბრუნებს ResultVoid

განსაზღვრავს რა ავტობუსის მოწყობილობას განაახლებს NanoLib. გზა file შეიცავს ჩატვირთვის მტვირთავის მონაცემებს (std::string). მონაცემთა პროგრესის ტრეისერი. ადასტურებს, რომ void ფუნქცია გაშვებულია.

ატვირთვაBootloaderFirmware ()
გამოიყენეთ ეს ფუნქცია თქვენი კონტროლერის ჩამტვირთავის და პროგრამული უზრუნველყოფის განახლებისთვის.
virtual ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmware (const DeviceHandle deviceHandle, const std::vector) & btData, const std::vector & fwData, NlcDataTransferCallback* უკუკავშირი)

პარამეტრები deviceHandle btData fwData NlcDataTransferCallback
აბრუნებს ResultVoid

განსაზღვრავს რა ავტობუსის მოწყობილობას განაახლებს NanoLib. მასივი, რომელიც შეიცავს ჩამტვირთველის მონაცემებს. მასივი, რომელიც შეიცავს firmware მონაცემებს. მონაცემთა პროგრესის მკვლევარი. ადასტურებს, რომ void ფუნქცია გაშვებულია.

ატვირთეთBootloaderFirmwareFromFile ()
გამოიყენეთ ეს ფუნქცია თქვენი კონტროლერის ჩამტვირთველის და პროგრამული უზრუნველყოფის განახლებისთვის ატვირთვით files.
virtual ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmwareFromFile (const DeviceHandle deviceHandle, const std::string & bootloaderAbsolute)Fileგზა, const std::string და აბსოლუტურიFileგზა, NlcDataTransferCallback* უკუკავშირი)

პარამეტრები მოწყობილობა Handle bootloaderAbsoluteFileბილიკი აბსოლუტურიFileგზა NlcDataTransferCallback
აბრუნებს ResultVoid

განსაზღვრავს რა ავტობუსის მოწყობილობას განაახლებს NanoLib. გზა file შეიცავს ჩატვირთვის მონაცემების შემცველს (std::string). გზა file შეიცავს firmware მონაცემებს (uint8_t). მონაცემთა პროგრესის მკვლევარი. ადასტურებს, რომ void ფუნქცია გაშვებულია.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

25

8 კლასების / ფუნქციების მითითება

ატვირთვაNanoJ ()
გამოიყენეთ ეს საჯარო ფუნქცია NanoJ პროგრამის თქვენს კონტროლერზე განახლებისთვის.
virtual ResultVoid nlc::NanoLibAccessor::uploadNanoJ (DeviceHandle const deviceHandle, std::vector const & vmmData, NlcDataTransferCallback* უკუკავშირი)

პარამეტრები მოწყობილობის მართვა vmmData NlcDataTransferCallback
აბრუნებს ResultVoid

განსაზღვრავს, რომელ ავტობუს მოწყობილობაზე აიტვირთება NanoLib. მასივი, რომელიც შეიცავს NanoJ მონაცემებს. მონაცემთა პროგრესის მკვლევარი. ადასტურებს, რომ void ფუნქცია გაშვებულია.

ატვირთეთNanoJFromFile ()
გამოიყენეთ ეს საჯარო ფუნქცია NanoJ პროგრამის თქვენს კონტროლერზე ატვირთვისთვის, ატვირთვით file.
ვირტუალური ResultVoid nlc::NanoLibAccessor::uploadNanoJFromFile (const DeviceHandle deviceHandle, const std::string & absoluteFileგზა, NlcDataTransferCallback* უკუკავშირი)

პარამეტრები მოწყობილობის სახელური აბსოლუტურიFileგზა NlcDataTransferCallback
აბრუნებს ResultVoid

განსაზღვრავს, რომელ ავტობუს მოწყობილობაზე აიტვირთება NanoLib. გზა file NanoJ მონაცემების შემცველი (std::string). მონაცემთა პროგრესის ტრეისერი. ადასტურებს, რომ void ფუნქცია გაშვებულია.

disconnectDevice () გამოიყენეთ ეს ფუნქცია თქვენი მოწყობილობის გათიშვისთვის DeviceHandle-ით.
ვირტუალური ResultVoid nlc::NanoLibAccessor::disconnectDevice (DeviceHandle const deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultVoid

განსაზღვრავს, თუ რა ავტობუსის მოწყობილობას წყვეტს NanoLib. ადასტურებს, რომ void ფუნქცია გაშვებულია.

removeDevice () გამოიყენეთ ეს ფუნქცია თქვენი მოწყობილობის NanoLib-ის შიდა მოწყობილობების სიიდან ამოსაღებად.
virtual ResultVoid nlc::NanoLibAccessor::removeDevice (const DeviceHandle deviceHandle)

პარამეტრები deviceHandle აბრუნებს ResultVoid

განსაზღვრავს რა ავტობუსის მოწყობილობას NanoLib წაშლის. ადასტურებს, რომ void ფუნქცია გაშვებულია.

closeBusHardware () გამოიყენეთ ეს ფუნქცია თქვენი fieldbus-ის აპარატურის გასაწყვეტად.
virtual ResultVoid nlc::NanoLibAccessor::closeBusHardware (BusHardwareId const & busHwId)

პარამეტრები buHwId აბრუნებს ResultVoid

განსაზღვრავს საველე ავტობუსს, საიდანაც უნდა გათიშოთ. ადასტურებს, რომ void ფუნქცია გაშვებულია.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

26

8 კლასების / ფუნქციების მითითება

8.2 BusHardwareId
გამოიყენეთ ეს კლასი, რათა ამოიცნოთ ავტობუსის აპარატურა ერთი-ერთზე ან განასხვავოთ სხვადასხვა ავტობუსის აპარატურა ერთმანეთისგან. ეს კლასი (სეთერის ფუნქციების გარეშე, რომელიც შექმნიდან უცვლელი იქნება) ასევე შეიცავს ინფორმაციას:
აპარატურა (= ადაპტერის სახელი, ქსელის ადაპტერი და ა.შ.) გამოსაყენებელი პროტოკოლი (= Modbus TCP, CANopen და ა.შ.) ავტობუსის აპარატურის სპეციფიკატორი (= სერიული პორტის სახელი, MAC მეგობრული სახელი
მისამართი და ა.შ.)

BusHardwareId () [1/3] კონსტრუქტორი, რომელიც ქმნის ახალ ავტობუსის აპარატურის ID ობიექტს.
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 (პორტი) და ა.შ.).

BusHardwareId () [2/3] კონსტრუქტორი, რომელიც ქმნის ახალ ავტობუსის აპარატურის ID ობიექტს, დამატებითი აპარატურის სპეციფიკატორის ოფციით.
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 (პორტი) და ა.შ.).

BusHardwareId () [3/3] კონსტრუქტორი, რომელიც აკოპირებს არსებულ busHardwareId-ს.
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)

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

პარამეტრები busHardwareId

ასახელებს ავტობუსის აპარატურის ID-ს, საიდანაც უნდა დააკოპიროთ.

უდრის () ადარებს ახალ ავტობუსის ტექნიკის ID-ს არსებულს.
bool nlc::BusHardwareId::equals (BusHardwareId const & other) const

სხვა პარამეტრები აბრუნებს true

იმავე კლასის კიდევ ერთი ობიექტი. თუ ორივე ტოლია ყველა მნიშვნელობით.

ვერსია: 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 () აბრუნებს ავტობუსის აპარატურის ID-ს სტრიქონის სახით.
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 და პარამეტრები)

პარამეტრების პარამეტრები

რუკა ავტობუსის ტექნიკის მუშაობის ვარიანტებით.

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::equals (BusHardwareOptions const & other) const

სხვა პარამეტრები აბრუნებს true
ყალბი

ამავე კლასის სხვა ობიექტი. თუ სხვა ობიექტს აქვს ყველა ზუსტად იგივე ვარიანტი. თუ სხვა ობიექტს აქვს სხვადასხვა გასაღებები ან მნიშვნელობები.

getOptions () კითხულობს ყველა დამატებულ გასაღები-მნიშვნელობის წყვილს.
std::map 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

BAUD_RATE_1000K = “1000k” BAUD_RATE_800K = “800k” BAUD_RATE_500K = “500k” BAUD_RATE_250K = “250k” BAUD_RATE_125K = “125k” BAUD_100K 100k“ BAUD_RATE_50K = „50k“ BAUD_RATE_20K = „20k“ BAUD_RATE_10K = „10k“

8.6 CanBus

ნაგულისხმევი კონფიგურაციის პარამეტრების კლასი შემდეგი საჯარო ატრიბუტებით:

const std::string const CanBaudRate const Ixxat

BAUD_RATE_OPTIONS_NAME = „შეიძლება ადაპტერის ბაუდის სიჩქარე“ baudRate = CanBaudRate () ixxat = Ixxat ()

8.7 CanOpenNmtService

NMT სერვისისთვის, ეს სტრუქტურა შეიცავს CANopen NMT მდგომარეობებს, როგორც სტრიქონების მნიშვნელობებს შემდეგ საჯარო ატრიბუტებში:

const std::string const std::string const std::string const std::string const std::string

START = „START“ STOP = „STOP“ PRE_OPERATIONAL = „PRE_OPERATIONAL“ RESET = „RESET“ RESET_COMMUNICATION = „RESET_COMMUNICATION“

8.8 CanOpenNmtState

ეს სტრუქტურა შეიცავს CANopen NMT მდგომარეობებს, როგორც სტრიქონების მნიშვნელობებს შემდეგ საჯარო ატრიბუტებში:

const std::string const std::string const std::string const std::string const std::string

STOPPED = „STOPPED“ PRE_OPERATIONAL = „PRE_OPERATIONAL“ OPERATIONAL = „OPERATIONAL“ ინიციალიზაცია = „ინიციალიზაცია“ უცნობი = „უცნობი“

8.9 EtherCATBus struct

ეს სტრუქტურა შეიცავს EtherCAT კომუნიკაციის კონფიგურაციის ვარიანტებს შემდეგ საჯარო ატრიბუტებში:

ვერსია: doc 1.4.2 / NanoLib 1.3.0

30

8 კლასების / ფუნქციების მითითება

const std::string NETWORK_FIRMWARE_STATE_OP- ქსელის მდგომარეობა განიხილება, როგორც firmware რეჟიმი. მისაღებია

TION_NAME = „ქსელის პროგრამული უზრუნველყოფის მდგომარეობა“

მნიშვნელობები (ნაგულისხმევი = PRE_OPERATIONAL):

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

const std::string DEFAULT_NETWORK_FIRMWARE_ STATE = „ოპერაციისწინა“

const std::string EXCLUSIVE_LOCK_TIMEOUT_OP - ექსკლუზიური დაბლოკვის მისაღებად საჭირო დრო მილიწამებში

TION_NAME = „გაზიარებული დაბლოკვის დროის ამოწურვა“

ქსელი (ნაგულისხმევი = 500 ms).

ხელმოუწერელი int DEFAULT_EXCLUSIVE_LOCK_ TIMEOUT = „500“

const std::string SHARED_LOCK_TIMEOUT_OPTION_ გაზიარებული დაბლოკვის მისაღებად დროის ამოწურვა მილიწამებში

NAME = „გაზიარებული დაბლოკვის დროის ამოწურვა“

ქსელი (ნაგულისხმევი = 250 ms).

ხელმოუწერელი int DEFAULT_SHARED_LOCK_TIMEOUT = „250“

const std::string READ_TIMEOUT_OPTION_NAME = წაკითხვის ოპერაციის დროის ლიმიტი მილიწამებში (ნაგულისხმევი

„წაკითხვის დროის ამოწურვა“

= 700 მილიწამი).

ხელმოუწერელი int DEFAULT_READ_TIMEOUT = „700“

const std::string WRITE_TIMEOUT_OPTION_NAME = ჩაწერის ოპერაციის დროის ლიმიტი მილიწამებში (ნაგულისხმევი

„ჩაწერის ვადის ამოწურვა“

= 200 მილიწამი).

ხელმოუწერელი int DEFAULT_WRITE_TIMEOUT = „200“

const std::string READ_WRITE_ATTEMPTS_OPTION_ წაკითხვის ან ჩაწერის მაქსიმალური მცდელობები (არანულოვანი მნიშვნელობები)

NAME = „წაკითხვის/ჩაწერის მცდელობები“

მხოლოდ; ნაგულისხმევი = 5).

ხელმოუწერელი int DEFAULT_READ_WRITE_ATTEMPTS = „5“

const std::string CHANGE_NETWORK_STATE_ATTEMPTS_OPTION_NAME = „ქსელის მდგომარეობის შეცვლის მცდელობები“

ქსელის მდგომარეობის შეცვლის მცდელობების მაქსიმალური რაოდენობა (მხოლოდ ნულოვანი მნიშვნელობები; ნაგულისხმევი = 10).

ხელმოუწერელი int DEFAULT_CHANGE_NETWORK_ STATE_ATTEMPTS = „10“

const std::string PDO_IO_ENABLED_OPTION_NAME ციფრული შეყვანისთვის PDO დამუშავების ჩართვა ან გამორთვა

= „PDO IO ჩართულია“

შედეგები (მხოლოდ "True" ან "False"; ნაგულისხმევი = "True").

const std::string DEFAULT_PDO_IO_ENABLED = „ჭეშმარიტია“

8.10 EtherCATState სტრუქტურა

ეს სტრუქტურა შეიცავს EtherCAT slave / ქსელის მდგომარეობებს, როგორც სტრიქონების მნიშვნელობებს შემდეგ საჯარო ატრიბუტებში. შენიშვნა: ჩართვისას ნაგულისხმევი მდგომარეობა არის PRE_OPERATIONAL; NanoLib-ს არ შეუძლია უზრუნველყოს საიმედო „ოპერაციული“ მდგომარეობა არარეალურ ოპერაციულ სისტემაში:

const std::string const std::string const std::string const std::string const std::string const std::string

NONE = “NONE” INIT = “InIT” PRE_OPERATIONAL = “PRE_OPERATIONAL” BOOT = “BOOT” SAFE_OPERATIONAL = “SAFE_OPERATIONAL” OPERATIONAL = “OPERATIONAL”

ვერსია: doc 1.4.2 / NanoLib 1.3.0

31

8 კლასების / ფუნქციების მითითება

8.11 იქსატ

ეს სტრუქტურა Ixxat usb-to-can-ის ყველა ინფორმაციას შემდეგ საჯარო ატრიბუტებში ინახავს:

const std::string

ADAPTER_BUS_NUMBER_OPTIONS_NAME = „ixxat ადაპტერის ავტობუსის ნომერი“

const IxxatAdapterBusNumber adapterBusNumber = IxxatAdapterBusNumber ()

8.12 IxxatAdapterBusNumber

ეს სტრუქტურა Ixxat usb-to-can-ის ავტობუსის ნომერს შემდეგ საჯარო ატრიბუტებში ინახავს:

const std::string const std::string const std::string const std::string

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

8.13 მწვერვალი

ეს სტრუქტურა Peak usb-to-can-ის ყველა ინფორმაციას შემდეგ საჯარო ატრიბუტებში ინახავს:

const std::string

ADAPTER_BUS_NUMBER_OPTIONS_NAME = „პიკური ადაპტერის ავტობუსის ნომერი“

const PeakAdapterBusNumber adapterBusNumber = PeakAdapterBusNumber ()

8.14 PeakAdapterBusNumber

ეს სტრუქტურა ინახავს Peak usb-to-can-ის ავტობუსის ნომერს შემდეგ საჯარო ატრიბუტებში:

const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string

BUS_NUMBER_1_DEFAULT = std::to_string (PCAN_USBBUS1) BUS_NUMBER_2 = std::to_string (PCAN_USBBUS2) BUS_NUMBER_3 = std::to_string (PCAN_USBBUS3) BUS_NUMBER_4 = std::to_string (PCAN_USBBUS4) BUS_NUMBER_5 = std::to_string (PCAN_USBBUS5) BUS_NUMBER_6 = std::to_string (PCAN_USBBUS6) BUS_NUMBER_7 = std::to_string (PCAN_USBBUS7) BUS_NUMBER_8 = std::to_string (PCAN_USBBUS8) BUS_NUMBER_9 = std::to_string (PCAN_USBBUS9) BUS_NUMBER_10 = std::to_string (PCAN_USBBUS10) BUS_NUMBER_11 = std::to_string (PCAN_USBBUS11) BUS_NUMBER_12 = std::to_string (PCAN_USBBUS12) BUS_NUMBER_13 = std::to_string (PCAN_USBBUS13) BUS_NUMBER_14 = std::to_string (PCAN_USBBUS14) BUS_NUMBER_15 = std::to_string (PCAN_USBBUS15) BUS_NUMBER_16 = std::to_string (PCAN_USBBUS16)

8.15 მოწყობილობის სახელური
ეს კლასი წარმოადგენს სახელურს ავტობუსში მოწყობილობის სამართავად და აქვს შემდეგი საჯარო წევრის ფუნქციები.

მოწყობილობის სახელური () მოწყობილობის სახელური (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 get () const

8.16 მოწყობილობის ID
გამოიყენეთ ეს კლასი (შექმნიდან შეუცვლელი) ავტობუსში მოწყობილობების იდენტიფიცირებისთვის და გასარჩევად:

აპარატურის ადაპტერის იდენტიფიკატორი

მოწყობილობის იდენტიფიკატორი

აღწერა

მოწყობილობის ID/აღწერის მნიშვნელობების მნიშვნელობა დამოკიდებულია ავტობუსზე. მაგampასევე, CAN ავტობუსს შეუძლია გამოიყენოს მთელი რიცხვის ID.

DeviceId () [1/3] აყალიბებს ახალი მოწყობილობის ID ობიექტს.
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId_, unsigned int deviceId_, std::string const & description_)

პარამეტრები busHardwareId_ deviceId_ description_

ავტობუსის იდენტიფიკატორი. ინდექსი; ექვემდებარება ავტობუსს (= CANopen კვანძის ID და ა.შ.). აღწერა (შეიძლება ცარიელი იყოს); ექვემდებარება ავტობუსს.

მოწყობილობის ID () [2/3] ქმნის ახალ მოწყობილობის ID ობიექტს გაფართოებული ID პარამეტრებით.
nlc::მოწყობილობისId::მოწყობილობისId (BusHardwareId const & busHardwareId, unsigned int deviceId_, std::string const & description_ std::vector const და extraId_, std::string const და extraStringId_)

პარამეტრები busHardwareId_deviceId_description_extraId_extraStringId_

ავტობუსის იდენტიფიკატორი. ინდექსი; დამოკიდებულია ავტობუსზე (= CANopen კვანძის ID და ა.შ.). აღწერა (შეიძლება ცარიელი იყოს); დამოკიდებულია ავტობუსზე. დამატებითი ID (შეიძლება ცარიელი იყოს); მნიშვნელობა დამოკიდებულია ავტობუსზე. დამატებითი სტრიქონის ID (შეიძლება ცარიელი იყოს); მნიშვნელობა დამოკიდებულია ავტობუსზე.

DeviceId () [3/3] აყალიბებს მოწყობილობის ID ობიექტის ასლს.
nlc::მოწყობილობისId::მოწყობილობისId (მოწყობილობისId const &)

ვერსია: doc 1.4.2 / NanoLib 1.3.0

33

8 კლასების / ფუნქციების მითითება

პარამეტრები deviceId_

მოწყობილობის ID კოპირებისთვის.

უდრის () ადარებს ახალ არსებულ ობიექტებს.
bool nlc::DeviceId::equals (DeviceId const & other) const

აბრუნებს ლოგიკურს

getBusHardwareId () კითხულობს ავტობუსის აპარატურის ID-ს.
BusHardwareId nlc::DeviceId::getBusHardwareId () const

აბრუნებს BusHardwareId

getDescription () კითხულობს მოწყობილობის აღწერას (შეიძლება გამოუყენებელი).
std::string nlc::მოწყობილობისId::getDescription () const

აბრუნებს სტრიქონს

getDeviceId () კითხულობს მოწყობილობის ID-ს (შეიძლება გამოუყენებელი).
ხელმოუწერელი int nlc::DeviceId::getDeviceId () const

აბრუნებს ხელმოუწერელი int

toString () აბრუნებს ობიექტს სტრიქონის სახით.
std::string nlc::მოწყობილობისId::toString () const

აბრუნებს სტრიქონს

getExtraId () კითხულობს მოწყობილობის დამატებით ID-ს (შეიძლება იყოს გამოუყენებელი).
const std::vector &getExtraId () კონსტ.

აბრუნებს ვექტორს

დამატებითი დამატებითი ID-ების ვექტორი (შეიძლება ცარიელი იყოს); მნიშვნელობა დამოკიდებულია ავტობუსზე.

getExtraStringId () კითხულობს მოწყობილობის დამატებით სტრიქონის ID-ს (შეიძლება იყოს გამოუყენებელი).
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 ჟურნალის მოდულის გადამყვანი

ეს კლასი აბრუნებს თქვენი ბიბლიოთეკისთვის სპეციფიკურ ჟურნალის modulesetLoggingLevel ()-ს სტრიქონის სახით.

სტატიკური std::string

toString (nlc::LogModule logModule)

სტატიკური std::string toString (nlc::LogModule logModule)

8.19 ObjectDictionary
ეს კლასი წარმოადგენს კონტროლერის ობიექტის ლექსიკონს და აქვს შემდეგი საჯარო წევრის ფუნქციები: getDeviceHandle ()
virtual ResultDeviceHandle getDeviceHandle () const აბრუნებს ResultDeviceHandle-ს

getObject () virtual ResultObjectSubEntry getObject (OdIndex const odIndex) აბრუნებს ResultObjectSubEntry-ს

getObjectEntry () ვირტუალური ResultObjectEntry getObjectEntry (uint16_t ინდექსი)

აბრუნებს ResultObjectEntry

აწვდის ინფორმაციას ობიექტის თვისებებზე.

getXmlFileსახელი () ვირტუალური ResultString getXmlFileსახელი () კონსტ

აბრუნებს ResultString

აბრუნებს XML-ს file სახელწოდება, როგორც სტრიქონი.

readNumber () virtual ResultInt readNumber (OdIndex const odIndex) აბრუნებს ResultInt-ს
readNumberArray () virtual ResultArrayInt readNumberArray (uint16_t const index)

ვერსია: doc 1.4.2 / NanoLib 1.3.0

35

8 კლასების / ფუნქციების მითითება
აბრუნებს ResultArrayInt readString ()
virtual ResultString readString (OdIndex const odIndex) აბრუნებს ResultString readBytes () virtual ResultArrayByte readBytes (OdIndex const odIndex) აბრუნებს ResultArrayByte writeNumber () virtual ResultVoid writeNumber (OdIndex const odIndex, const int64_t value) აბრუნებს ResultVoid writeBytes () virtual ResultVoid writeBytes (OdIndex const OdIndex, std::vector
const & data) აბრუნებს ResultVoid-ს დაკავშირებულ ბმულებს OdIndex
8.20 ობიექტის შესვლა
ეს კლასი წარმოადგენს ობიექტის ლექსიკონის ობიექტის ჩანაწერს, აქვს შემდეგი სტატიკური დაცული ატრიბუტი და საჯარო წევრი ფუნქციები:
სტატიკური nlc::ObjectSubEntry invalidObject
getName () კითხულობს ობიექტის სახელს სტრიქონის სახით.
ვირტუალური std::string getName () const
getPrivate () ამოწმებს არის თუ არა ობიექტი კერძო.
ვირტუალური bool getPrivate () const
getIndex () კითხულობს ობიექტის ინდექსის მისამართს.
ვირტუალური uint16_t getIndex () const

ვერსია: doc 1.4.2 / NanoLib 1.3.0

36

8 კლასების / ფუნქციების მითითება

getDataType () კითხულობს ობიექტის მონაცემთა ტიპს.
ვირტუალური nlc::ObjectEntryDataType getDataType () const

getObjectCode () კითხულობს ობიექტის კოდს:

Null Deftype Defstruct Var Array ჩანაწერი

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

ვირტუალური nlc::ObjectCode getObjectCode () const

getObjectSaveable () ამოწმებს, არის თუ არა ობიექტის შენახვა და მისი კატეგორია (იხილეთ პროდუქტის სახელმძღვანელო დამატებითი დეტალებისთვის): APPLICATION, COMMUNICATION, DRIVE, MISC_CONFIG, MODBUS_RTU, NO, TUNING, CUSTOMER, ETHERNET, CANOPEN, VERIFYNOWLE_NOWVESA,
ვირტუალური nlc::ObjectSaveable getObjectSaveable () const

getMaxSubIndex () ამოიკითხავს ამ ობიექტის მიერ მხარდაჭერილი ქვეინდიქსის რაოდენობას.
ვირტუალური uint8_t getMaxSubIndex () კონსტ.

getSubEntry () ვირტუალური nlc::ObjectSubEntry & getSubEntry (uint8_t subIndex)
აგრეთვე ObjectSubEntry.
8.21 ObjectSubEntry
ეს კლასი წარმოადგენს ობიექტის ლექსიკონის ობიექტის ქვეჩანართს (ქვეინდექსი) და აქვს შემდეგი საჯარო წევრის ფუნქციები:
getName () კითხულობს ობიექტის სახელს სტრიქონის სახით.
ვირტუალური std::string getName () const

getSubIndex () კითხულობს ქვეინდექსის მისამართს.
ვირტუალური uint8_t getSubIndex () კონსტ.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

37

8 კლასების / ფუნქციების მითითება

getDataType () კითხულობს ობიექტის მონაცემთა ტიპს.
ვირტუალური nlc::ObjectEntryDataType getDataType () const

getSdoAccess () ამოწმებს არის თუ არა ქვეინდექსი SDO-ს საშუალებით წვდომის საშუალებას:

წაკითხული მხოლოდ

1

დაწერე მხოლოდ

2

წაიკითხე დაწერე

3

NoAccess

0

ვირტუალური nlc::ObjectSdoAccessAttribute getSdoAccess () const

getPdoAccess () ამოწმებს, არის თუ არა ქვეინდექსი ხელმისაწვდომი/შესაძლებელია PDO-ით:

Tx

1

Rx

2

TxRx

3

არა

0

ვირტუალური nlc::ObjectPdoAccessAttribute getPdoAccess () const

getBitLength () ამოწმებს ქვეინდექსის სიგრძეს.
ვირტუალური uint32_t getBitLength () კონსტ.

getDefaultValueAsNumeric () კითხულობს ქვეინდექსის ნაგულისხმევ მნიშვნელობას რიცხვითი მონაცემების ტიპებისთვის.
virtual ResultInt getDefaultValueAsNumeric (std::string const & key) const

getDefaultValueAsString () კითხულობს ქვეინდექსის ნაგულისხმევ მნიშვნელობას სიმებიანი მონაცემთა ტიპებისთვის.
ვირტუალური ResultString getDefaultValueAsString (std::string const & key) const

getDefaultValues ​​() კითხულობს ქვეინდექსის ნაგულისხმევ მნიშვნელობებს.
ვირტუალური std::map getDefaultValues ​​() const

ვერსია: doc 1.4.2 / NanoLib 1.3.0

38

8 კლასების / ფუნქციების მითითება

readNumber () კითხულობს ქვეინდექსის რიცხვით რეალურ მნიშვნელობას.
ვირტუალური ResultInt readNumber () const

readString () კითხულობს ქვეინდექსის ფაქტობრივ მნიშვნელობას.
ვირტუალური ResultString readString () const

readBytes () კითხულობს ქვეინდექსის რეალურ მნიშვნელობას ბაიტებში.
ვირტუალური ResultArrayByte readBytes () const

writeNumber () წერს ციფრულ მნიშვნელობას ქვეინდექსიში.
ვირტუალური ResultVoid writeNumber (const int64_t მნიშვნელობა) const

writeBytes () წერს მნიშვნელობას ქვეინდექსის ბაიტებში.
ვირტუალური ResultVoid writeBytes (std::vector) const და მონაცემები) const

8.22 OdIndex
გამოიყენეთ ეს კლასი (უცვლელი შექმნიდან) ობიექტების დირექტორიაში ინდექსების/ქვეინდექსების შესაფუთად და მოსაძებნად. მოწყობილობის OD აქვს 65535-მდე (0xFFFF) მწკრივი და 255 (0xFF) სვეტი; წყვეტილ მწკრივებს შორის ხარვეზებით. იხილეთ CANopen სტანდარტი და თქვენი პროდუქტის სახელმძღვანელო მეტი დეტალებისთვის.
OdIndex () აშენებს ახალ OdIndex ობიექტს.
nlc::OdIndex::OdIndex (uint16_t ინდექსი, uint8_t ქვეინდექსი)

პარამეტრების ინდექსის ქვეინდექსი

0-დან 65535-მდე (0xFFFF) ჩათვლით. 0-დან 255-მდე (0xFF) ჩათვლით.

getIndex () კითხულობს ინდექსს (0x0000-დან 0xFFFF-მდე).
uint16_t nlc::OdIndex::getIndex () 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 () ვირტუალური uint32_t getObjectDictionaryCount () const

getObjectDictionary () ვირტუალური ResultObjectDictionary getObjectDictionary (uint32_t odIndex)

აბრუნებს ResultObjectDictionary

addObjectDictionaryFromFile ()
ვირტუალური ResultObjectDictionary addObjectDictionaryFromFile (std::string const & absoluteXmlFileგზა)

აბრუნებს ResultObjectDictionary

ობიექტის ლექსიკონის დამატება ()
ვირტუალური ResultObjectDictionary addObjectDictionary (std::vector) const და odXmlData, const std::string და xmlFileბილიკი = std:: string ())

აბრუნებს ResultObjectDictionary
8.24 OdTypesHelper
შემდეგი საჯარო წევრი ფუნქციების გარდა, ეს კლასი შეიცავს მორგებულ მონაცემთა ტიპებს. შენიშვნა: თქვენი მორგებული მონაცემთა ტიპების შესამოწმებლად, od_types.hpp ფაილში მოძებნეთ enum კლასი ObjectEntryDataType.

uintToObjectCode () გარდაქმნის ხელმოუწერელ მთელ რიცხვებს ობიექტის კოდად:

ნულოვანი დეფტიპი

0x00 0x05

ვერსია: doc 1.4.2 / NanoLib 1.3.0

40

8 კლასების / ფუნქციების მითითება

Var Array ჩანაწერის დესტრუქტურიზაცია

0x06 0x07 0x08 0x09

სტატიკური ობიექტის კოდი uintToObjectCode (ხელმოუწერელი int ობიექტის კოდი)

isNumericDataType () აცნობებს, არის თუ არა მონაცემთა ტიპი რიცხვითი თუ არა.
სტატიკური bool isNumericDataType (ObjectEntryDataType dataType)

isDefstructIndex () აცნობებს არის თუ არა ობიექტი განმარტების სტრუქტურის ინდექსი.
სტატიკური bool isDefstructIndex (uint16_t typeNum)

isDeftypeIndex () აცნობებს არის თუ არა ობიექტი განმარტების ტიპის ინდექსი.
სტატიკური bool isDeftypeIndex (uint16_t typeNum)

isComplexDataType () აცნობებს მონაცემთა ტიპი რთულია თუ არა.
სტატიკური bool isComplexDataType (ObjectEntryDataType dataType)

uintToObjectEntryDataType () გარდაქმნის ხელმოუწერელ მთელ რიცხვებს OD მონაცემთა ტიპად.
სტატიკური ობიექტის შეყვანის მონაცემთა ტიპი uintToObjectEntryDataType (uint16_t ობიექტის მონაცემთა ტიპი)

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 Connect Timeout“ DEFAULT_CONNECT_TIMEOUT = 200 REQUEST_TIMEOUT_OPTION_NAME = „RESTful მოთხოვნის ვადა“ DEFAULT_REQUEST_TIMEOUT = 200 RESPONSE_NAMETIMOUT_OPTION_აუტი = 750

8.26 ProfinetDCP
Linux-ის პირობებში, დარეკვის აპლიკაციას სჭირდება CAP_NET_ADMIN და CAP_NET_RAW შესაძლებლობები. ჩასართავად: sudo setcap 'cap_net_admin,cap_net_raw+eip' ./შესრულებადი. 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 ms).
ვირტუალური uint32_t nlc::ProfinetDCP::getScanTimeout () კონსტ.

setScanTimeout () ადგენს მოწყობილობის სკანირების ვადას (ნაგულისხმევი = 2000 ms).
ვირტუალური სიცარიელე nlc::setScanTimeout (uint32_t timeoutMsec)

getResponseTimeout () აცნობებს მოწყობილობის რეაგირების დროის ამოწურვას დაყენების, გადატვირთვისა და ციმციმის ოპერაციებისთვის (ნაგულისხმევი = 1000 ms).
ვირტუალური uint32_t nlc::ProfinetDCP::getResponseTimeout () const

setResponseTimeout () აცნობებს მოწყობილობის რეაგირების დროის ამოწურვას დაყენების, გადატვირთვისა და ციმციმის ოპერაციებისთვის (ნაგულისხმევი = 1000 ms).
ვირტუალური სიცარიელე nlc::ProfinetDCP::setResponseTimeout (uint32_t timeoutMsec)

ვერსია: doc 1.4.2 / NanoLib 1.3.0

42

8 კლასების / ფუნქციების მითითება

isServiceAvailable ()
გამოიყენეთ ეს ფუნქცია Profinet DCP სერვისის ხელმისაწვდომობის შესამოწმებლად.
ქსელის ადაპტერის მოქმედების ვადა/ხელმისაწვდომობა Windows: WinPcap / Npcap ხელმისაწვდომობა Linux: CAP_NET_ADMIN / CAP_NET_RAW შესაძლებლობები
ვირტუალური ResultVoid nlc::ProfinetDCP::isServiceAvailable (აგრძელებს BusHardwareId და busHardwareId)

პარამეტრები BusHardwareId აბრუნებს true
ყალბი

შემოწმებისთვის Profinet DCP სერვისის აპარატურის ID. სერვისი ხელმისაწვდომია. სერვისი მიუწვდომელია.

scanProfinetDevices () გამოიყენეთ ეს ფუნქცია ტექნიკის ავტობუსის სკანირებისთვის Profinet მოწყობილობების არსებობისთვის.
ვირტუალური ResultProfinetDevices scanProfinetDevices (const BusHardwareId & busHardwareId)

პარამეტრები BusHardwareId აბრუნებს ResultProfinetDevices

განსაზღვრავს თითოეულ საველე ავტობუსს გასახსნელად. აპარატურა ღიაა.

setupProfinetDevice () ადგენს მოწყობილობის შემდეგ პარამეტრებს:

მოწყობილობის სახელი

IP მისამართი

ქსელის ნიღაბი

ნაგულისხმევი კარიბჭე

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

resetProfinetDevice () აჩერებს მოწყობილობას და აყენებს მას ქარხნულ პარამეტრებზე.
virtual ResultVoid nlc::resetProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice & profinetDevice)

blinkProfinetDevice () ბრძანებს Profinet მოწყობილობას, დაიწყოს მისი Profinet LED-ის ციმციმა.
virtual ResultVoid nlc::blinkProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice &profinetDevice)

validateProfinetDeviceIp () გამოიყენეთ ეს ფუნქცია მოწყობილობის IP მისამართის შესამოწმებლად.
virtual ResultVoid validateProfinetDeviceIp (const BusHardwareId &busHardwareId, const ProfinetDevice & profinetDevice)

პარამეტრები BusHardwareId ProfinetDevice

განსაზღვრავს ტექნიკის ID-ს შესამოწმებლად. განსაზღვრავს Profinet მოწყობილობას დასადასტურებლად.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

43

8 კლასების / ფუნქციების მითითება

აბრუნებს ResultVoid

8.27 ProfinetDevice struct

Profinet მოწყობილობის მონაცემებს აქვთ შემდეგი საჯარო ატრიბუტები:

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

მოწყობილობის სახელი, მოწყობილობის გამყიდველი, macAddress, ipAddress, netMask, defaultGateway

MAC მისამართი მოწოდებულია მასივის სახით macAddress = {xx, xx, xx, xx, xx, xx}; მაშინ როდესაც IP მისამართი, ქსელის ნიღაბი და კარიბჭე ყველა ინტერპრეტირებულია, როგორც დიდი ენდიის თექვსმეტობითი რიცხვები, როგორიცაა:

IP მისამართი: 192.168.0.2 ქსელის ნიღაბი: 255.255.0.0 კარიბჭე: 192.168.0.1

0xC0A80002 0xFFFF0000 0xC0A80001

8.28 შედეგი კლასები

გამოიყენეთ ამ კლასების „არასავალდებულო“ დაბრუნების მნიშვნელობები, რათა შეამოწმოთ წარმატებული იყო თუ არა ფუნქციის გამოძახება და ასევე დაადგინოთ წარუმატებლობის მიზეზები. წარმატების შემთხვევაში, hasError () ფუნქცია აბრუნებს false-ს. getResult (), შეგიძლიათ წაიკითხოთ შედეგის მნიშვნელობა ტიპის მიხედვით (ResultInt და ა.შ.). თუ ზარი ვერ მოხერხდა, თქვენ წაიკითხეთ მიზეზი getError-ით ().

დაცული ატრიბუტები

სტრიქონი NlcErrorCode uint32_t

errorString errorCode exErrorCode

ასევე, ამ კლასს აქვს შემდეგი საჯარო წევრის ფუნქციები:

hasError () კითხულობს ფუნქციის ზარის წარმატებას.
bool nlc::Result::hasError () 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_)
შედეგი (შედეგი მუდმივი და შედეგი)
getErrorCode () წაიკითხეთ NlcErrorCode.
NlcErrorCode getErrorCode () const
getExErrorCode () uint32_t getExErrorCode () const
8.28.1 შედეგი ბათილად
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 (შედეგის კონსტ და შედეგი)
8.28.2 შედეგიინტ
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 (შედეგის კონსტ და შედეგი)
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 (შედეგის კონსტ და შედეგი)
8.28.4 ResultArrayByte
NanoLib გიგზავნით ამ კლასის ეგზემპლარს, თუ ფუნქცია დააბრუნებს ბაიტების მასივს. კლასი მემკვიდრეობით იღებს public functions / protected ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი public member ფუნქციები:
getResult () კითხულობს ბაიტის ვექტორს, თუ ფუნქციის გამოძახება წარმატებული იყო.
const std::vector nlc::ResultArrayByte::getResult () const
აბრუნებს კონსტ ვექტორს

ვერსია: doc 1.4.2 / NanoLib 1.3.0

46

8 კლასების / ფუნქციების მითითება
ResultArrayByte () შემდეგი ფუნქციები გვეხმარება ზუსტი ბაიტის მასივის შედეგის განსაზღვრაში:
ResultArrayByte (std::vector) const & result_)
ResultArrayByte (std::string const & errorString_)
ResultArrayByte (NlcErrorCode const & errCode, std::string const & error String_)
ResultArrayByte (NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultArrayByte (შედეგის კონსტ და შედეგი)
8.28.5 ResultArrayInt
NanoLib გიგზავნით ამ კლასის ეგზემპლარს, თუ ფუნქცია დააბრუნებს მთელ რიცხვების მასივს. კლასი მემკვიდრეობით იღებს public functions / protected ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი public member ფუნქციები:
getResult () კითხულობს მთელ ვექტორს, თუ ფუნქციის გამოძახება წარმატებული იყო.
const std::vector nlc::ResultArrayInt::getResult () const
აბრუნებს კონსტ ვექტორს
ResultArrayInt () შემდეგი ფუნქციები გვეხმარება ზუსტი მთელი მასივის შედეგის განსაზღვრაში:
ResultArrayInt (std::vector) const & result_)
ResultArrayInt (std::string const & errorString_)
ResultArrayInt (NlcErrorCode const & errCode, std::string const & error String_)
ResultArrayInt (NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultArrayInt (შედეგის კონსტ და შედეგი)
8.28.6 ResultBusHwIds
NanoLib გიგზავნით ამ კლასის ეგზემპლარს, თუ ფუნქცია დააბრუნებს ავტობუსის აპარატურის ID მასივს. კლასი მემკვიდრეობით იღებს public functions / protected ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი public female functions:
getResult () კითხულობს bus-hardware-ID ვექტორს, თუ ფუნქციის გამოძახება წარმატებული იყო.
const std::vector nlc::ResultBusHwIds::getResult () const
პარამეტრების კონსტ ვექტორი

ვერსია: doc 1.4.2 / NanoLib 1.3.0

47

8 კლასების / ფუნქციების მითითება
ResultBusHwIds () შემდეგი ფუნქციები გვეხმარება ზუსტი bus-hardware-ID-მასივის შედეგის განსაზღვრაში:
ResultBusHwIds (std::vector) const & result_)
ResultBusHwIds (std::string const & errorString_)
ResultBusHwIds (NlcErrorCode const & errCode, std::string const & errorString_)
ResultBusHwIds (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultBusHwIds (შედეგის კონსტ და შედეგი)
8.28.7 ResultDeviceId
NanoLib გიგზავნით ამ კლასის ეგზემპლარს, თუ ფუნქცია დააბრუნებს მოწყობილობის ID-ს. კლასი მემკვიდრეობით იღებს public functions / protected ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი public features:
getResult () კითხულობს მოწყობილობის ID ვექტორს, თუ ფუნქციის გამოძახება წარმატებული იყო.
მოწყობილობის ID nlc::ResultDeviceId::getResult () const
აბრუნებს const ვექტორს
ResultDeviceId () შემდეგი ფუნქციები გვეხმარება მოწყობილობის ID-ის ზუსტი შედეგის განსაზღვრაში:
ResultDeviceId (მოწყობილობის Id const & result_)
ResultDeviceId (std::string const & errorString_)
ResultDeviceId (NlcErrorCode const & errCode, std::string const & errorString_)
ResultDeviceId (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string errorString_)
ResultDeviceId (შედეგის კონსტ და შედეგი)
8.28.8 ResultDeviceIds
NanoLib გიგზავნით ამ კლასის ეგზემპლარს, თუ ფუნქცია დააბრუნებს მოწყობილობის ID მასივს. კლასი მემკვიდრეობით იღებს public functions / protected ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი public member ფუნქციები:
getResult () აბრუნებს მოწყობილობის ID ვექტორს, თუ ფუნქციის გამოძახება წარმატებით დასრულდა.
მოწყობილობის ID nlc::ResultDeviceIds::getResult () const
აბრუნებს const ვექტორს

ვერსია: doc 1.4.2 / NanoLib 1.3.0

48

8 კლასების / ფუნქციების მითითება
ResultDeviceIds () შემდეგი ფუნქციები გვეხმარება მოწყობილობის ID-მასივის ზუსტი შედეგის განსაზღვრაში:
ResultDeviceIds (std::vector) const & result_)
ResultDeviceIds (std::string const & errorString_)
ResultDeviceIds (NlcErrorCode const & errCode, std::string const & errorString_)
ResultDeviceIds (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultDeviceIds (შედეგის კონსტ და შედეგი)
8.28.9 ResultDevice Handle
NanoLib გიგზავნით ამ კლასის ეგზემპლარს, თუ ფუნქცია დააბრუნებს მოწყობილობის სახელურის მნიშვნელობას. კლასი მემკვიდრეობით იღებს public functions / protected ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი public member ფუნქციები:
getResult () კითხულობს მოწყობილობის სახელურს, თუ ფუნქციის გამოძახება წარმატებული იყო.
DeviceHandle nlc::ResultDeviceHandle::getResult () const
აბრუნებს მოწყობილობის სახელურს
ResultDeviceHandle () შემდეგი ფუნქციები გვეხმარება მოწყობილობის სახელურის ზუსტი შედეგის განსაზღვრაში:
ResultDeviceHandle (DeviceHandle const & result_)
ResultDeviceHandle (std::string const & errorString_)
ResultDeviceHandle (NlcErrorCode const & errCode, std::string const & errorString_)
ResultDeviceHandle (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultDeviceHandle (შედეგის კონსტ და შედეგი)
8.28.10 ResultObjectDictionary
NanoLib გამოგიგზავნით ამ კლასის მაგალითს, თუ ფუნქცია დააბრუნებს ობიექტის ლექსიკონის შინაარსს. კლასი მემკვიდრეობით იღებს საჯარო ფუნქციებს / დაცულ ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი საჯარო წევრის ფუნქციები:
getResult () კითხულობს მოწყობილობის ID ვექტორს, თუ ფუნქციის გამოძახება წარმატებული იყო.
const nlc::ObjectDictionary & nlc::ResultObjectDictionary::getResult() const

ვერსია: doc 1.4.2 / NanoLib 1.3.0

49

8 კლასების / ფუნქციების მითითება

ბრუნდება

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 (შედეგის კონსტ და შედეგი)

8.28.11 შედეგი კავშირის მდგომარეობა
NanoLib გამოგიგზავნით ამ კლასის მაგალითს, თუ ფუნქცია დააბრუნებს მოწყობილობის კავშირის მდგომარეობის ინფორმაციას. კლასი მემკვიდრეობით იღებს საჯარო ფუნქციებს / დაცულ ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი საჯარო წევრის ფუნქციები:
getResult () კითხულობს მოწყობილობის სახელურს, თუ ფუნქციის გამოძახება წარმატებული იყო.
მოწყობილობის კავშირის მდგომარეობის შესახებ ინფორმაცია nlc::შედეგის კავშირის მდგომარეობა::getResult () კონსტ.

აბრუნებს DeviceConnectionStateInfo Connected / Disconnected / ConnectedBootloader

ResultConnectionState () შემდეგი ფუნქციები გვეხმარება კავშირის მდგომარეობის ზუსტი შედეგის განსაზღვრაში:
ResultConnectionState (მოწყობილობის კავშირის მდგომარეობის ინფორმაციის კონსტ და შედეგი_)

ResultConnectionState (std::string const & errorString_)

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

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

ResultConnectionState (შედეგის კონსტ და შედეგი)

8.28.12 ResultObjectEntry
NanoLib გიგზავნით ამ კლასის ეგზემპლარს, თუ ფუნქცია დააბრუნებს ობიექტის ჩანაწერს. კლასი მემკვიდრეობით იღებს public functions / protected ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი public female functions:

ვერსია: 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 (შედეგის კონსტ და შედეგი)
8.28.13 ResultObjectSubEntry
NanoLib გიგზავნით ამ კლასის ეგზემპლარს, თუ ფუნქცია დააბრუნებს ობიექტის ქვე-ჩანაწერს. კლასი მემკვიდრეობით იღებს public functions / protected ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი public female functions:
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 (შედეგის კონსტ და შედეგი)
8.28.14 ResultProfinetDevices
NanoLib გამოგიგზავნით ამ კლასის მაგალითს, თუ ფუნქცია დააბრუნებს Profinet მოწყობილობას. კლასი მემკვიდრეობით იღებს საჯარო ფუნქციებს / დაცულ ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი საჯარო წევრის ფუნქციები:

ვერსია: doc 1.4.2 / NanoLib 1.3.0

51

8 კლასების / ფუნქციების მითითება

getResult () კითხულობს Profinet მოწყობილობის ვექტორს, თუ ფუნქციის გამოძახება წარმატებული იყო.
const std::vector & 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 შედეგიSampleDataArray
NanoLib გამოგიგზავნით ამ კლასის მაგალითს, თუ ფუნქცია დაბრუნდება როგორცampმონაცემთა მასივი. კლასი მემკვიდრეობით იღებს საჯარო ფუნქციებს / დაცულ ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი საჯარო წევრის ფუნქციები:
getResult () კითხულობს მონაცემთა მასივს, თუ ფუნქციის გამოძახება წარმატებული იყო.
const std::vector <SampleData> & getResult() const

შედეგიSampleDataArray () შემდეგი ფუნქციები დაგეხმარებათ ზუსტად განსაზღვროთ Profinet მოწყობილობები.
შედეგიSampleDataArray (const std::vector <SampleData> & dataArray)

შედეგიSampleDataArray (const std::string &errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t extendedErrorCode = 0)

შედეგიSampleDataArray (const ResultsS)ampleDataArray და სხვა)

შედეგიSampleDataArray (const Result & result)

8.28.16 შედეგიSampსახელმწიფო
NanoLib გამოგიგზავნით ამ კლასის მაგალითს, თუ ფუნქცია დაბრუნდება როგორცampler state.ეს კლასი მემკვიდრეობით იღებს საჯარო ფუნქციებს/დაცულ ატრიბუტებს შედეგის კლასიდან და აქვს შემდეგი საჯარო წევრის ფუნქციები:

getResult () კითხულობს სampler მდგომარეობის ვექტორი, თუ ფუნქციის გამოძახება წარმატებული იყო.
SamplerState getResult () const

აბრუნებს სamplerState>

არაკონფიგურირებული / კონფიგურირებული / მზად / გაშვებული / დასრულებული / ვერ / გაუქმდა

ვერსია: doc 1.4.2 / NanoLib 1.3.0

52

8 კლასების / ფუნქციების მითითება

შედეგიSamplerState () შემდეგი ფუნქციები გვეხმარება ზუსტი s-ის განსაზღვრაშიampლერ სახელმწიფო.
შედეგიSamplerState (const S)ampსახელმწიფო სახელმწიფო)

შედეგიSamplerState (const std::string & errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t
გაფართოებული შეცდომის კოდი = 0)

შედეგიSamplerState (const ResultsS)amplerState და სხვა)

შედეგიSamplerState (const Result & result)

8.29 NlcErrorCode

თუ რამე არასწორედ წარიმართება, შედეგების კლასები აცნობებენ ამ ჩამოთვლაში ჩამოთვლილ შეცდომის ერთ-ერთ კოდს.

შეცდომის კოდი წარმატება ზოგადი შეცდომა BusUnavailable კომუნიკაციის შეცდომა პროტოკოლის შეცდომა
ODDoesNotExist ODInvalidAccess ODTypeMismatch ოპერაცია შეწყვეტილი ოპერაცია არ არის მხარდაჭერილი არასწორი ოპერაცია
არასწორი არგუმენტების წვდომა უარყოფილი რესურსი არ მოიძებნა რესურსი მიუწვდომელია OutOfMemory TimeOutError

C: კატეგორია D: აღწერა R: მიზეზი C: არცერთი. დ: არანაირი შეცდომა. R: ოპერაცია წარმატებით დასრულდა.
გ: დაუზუსტებელი. D: დაუზუსტებელი შეცდომა. R: წარუმატებლობა, რომელიც არ შეესაბამება სხვა კატეგორიას.
გ: ავტობუსი. D: აპარატურის ავტობუსი მიუწვდომელია. R: ავტობუსი არ არსებობს, გათიშული ან დეფექტი.
გ: კომუნიკაცია. დ: კომუნიკაცია არასანდო. R: მოულოდნელი მონაცემები, არასწორი CRC, ჩარჩოს ან პარიტეტის შეცდომები და ა.შ.
გ: პროტოკოლი. D: პროტოკოლის შეცდომა. R: პასუხი მხარდაჭერილი პროტოკოლის ოფციის შემდეგ, მოწყობილობის მოხსენების მხარდაჭერილი პროტოკოლი, შეცდომა პროტოკოლში (მაგალითად, SDO სეგმენტის სინქრონიზაციის ბიტი) და ა.შ. სეგმენტის სინქრონიზაციის ბიტი) და ა.შ. R: მხარდაუჭერელი პროტოკოლი (ოფციები) ან შეცდომა პროტოკოლში (ვთქვათ, SDO სეგმენტის სინქრონიზაციის ბიტი) და ა.შ.
C: ობიექტის ლექსიკონი. D: OD მისამართი არ არსებობს. R: ობიექტის ლექსიკონში ასეთი მისამართი არ არსებობს.
გ: ობიექტის ლექსიკონი. D: OD მისამართზე წვდომა არასწორია. R: სცადეთ დაწეროთ მხოლოდ წაკითხვადი, ან წაიკითხოთ მხოლოდ ჩასაწერი მისამართიდან.
გ: ობიექტის ლექსიკონი. D: ტიპის შეუსაბამობა. R: მნიშვნელობა არ გარდაიქმნება მითითებულ ტიპზე, მაგალითად, სტრიქონის რიცხვად აღქმის მცდელობისას.
C: განაცხადი. D: პროცესი შეწყდა. R: პროცესის შეწყვეტა განაცხადის მოთხოვნით. ბრუნდება მხოლოდ ოპერაციის შეწყვეტისას გამოძახების ფუნქციით, ვთქვათ, ავტობუსის სკანირებიდან.
C: საერთო. D: პროცესი მხარდაუჭერელია. R: არ არის ტექნიკის ავტობუსის / მოწყობილობის მხარდაჭერა.
C: საერთო. D: დამუშავება არასწორია მიმდინარე კონტექსტში, ან არასწორია მიმდინარე არგუმენტით. R: ხელახლა დაკავშირების მცდელობა უკვე დაკავშირებულ ავტობუსებთან / მოწყობილობებთან. გათიშვის მცდელობა უკვე გათიშულებთან. ჩამტვირთველის მუშაობის მცდელობა firmware რეჟიმში ან პირიქით.
C: საერთო. დ: არგუმენტი არასწორია. R: არასწორი ლოგიკა ან სინტაქსი.
C: საერთო. დ: წვდომა აკრძალულია. R: მოთხოვნილი ოპერაციის შესასრულებლად უფლებების ან შესაძლებლობების ნაკლებობა.
C: საერთო. D: მითითებული ელემენტი ვერ მოიძებნა. R: აპარატურის ავტობუსი, პროტოკოლი, მოწყობილობა, OD მისამართი მოწყობილობაზე ან file არ მოიძებნა.
C: საერთო. D: მითითებული ელემენტი ვერ მოიძებნა. R: დაკავებული, არარსებული, გათიშული ან დეფექტი.
C: საერთო. დ: არასაკმარისი მეხსიერება. R: ძალიან ცოტა მეხსიერებაა ამ ბრძანების დასამუშავებლად.
C: საერთო. D: პროცესი ამოიწურა. R: დაბრუნება ტაიმ-აუტის ამოწურვის შემდეგ. დროის ამოწურვა შეიძლება იყოს მოწყობილობის რეაგირების დრო, დრო, რომ მოიპოვოთ საერთო ან ექსკლუზიური რესურსი, ან ავტობუსის/მოწყობილობის შესაფერის მდგომარეობაში გადართვის დრო.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

53

8 კლასების / ფუნქციების მითითება

8.30 NlcCallback
უკუკავშირის ამ მშობელ კლასს აქვს შემდეგი საჯარო წევრი ფუნქცია: callback()
ვირტუალური ResultVoid უკუკავშირი ()

ბრუნდება

შედეგი არ არის

8.31 NlcDataTransferCallback
გამოიყენეთ ეს უკუკავშირის კლასი მონაცემთა გადაცემისთვის (ფირმვერის განახლება, NanoJ-ის ატვირთვა და ა.შ.). 1. ფირმვერის ატვირთვისთვის: განსაზღვრეთ „თანაკლასი“, რომელიც აფართოებს მას მორგებული უკუკავშირის მეთოდით.
იმპლემენტაცია. 2. გამოიყენეთ „თანაკლასის“ ინსტანციები NanoLibAccessor.uploadFirmware () გამოძახებებში. თავად main კლასს აქვს შემდეგი public member ფუნქცია:

უკუკავშირი () virtual ResultVoid უკუკავშირი (nlc::DataTransferInfo info, int32_t data)

ბრუნდება

შედეგი არ არის

8.32 NlcScanBusCallback
გამოიყენეთ ეს უკუკავშირის კლასი ავტობუსის სკანირებისთვის. 1. განსაზღვრეთ „კოკლასი“, რომელიც აფართოებს მას უკუკავშირის მეთოდის მორგებული იმპლემენტაციით. 2. გამოიყენეთ „კოკლასის“ ინსტანციები NanoLibAccessor.scanDevices () გამოძახებებში. თავად main კლასს აქვს შემდეგი public member ფუნქცია.

გადმომირეკე ()
ვირტუალური ResultVoid უკუკავშირი (nlc::BusScanInfo info, std::vector const & devicesFound, int32_t მონაცემები)

აბრუნებს ResultVoid
8.33 NlcLoggingCallback
გამოძახების ეს კლასი გამოიყენე ზარების დასაწერად. 1. განსაზღვრეთ კლასი, რომელიც აფართოებს ამ კლასს მორგებული გამოძახების მეთოდის განხორციელებით.
setLoggingCallback (...).
ვირტუალური void უკუკავშირი (const std::string & payload_str, const std::string & formatted_str, const std::string & logger_name, const unsigned int log_level, const std::uint64_t time_since_epoch, const size_t thread_id)

8.34 სamplerინტერფეისი
გამოიყენეთ ეს კლასი s-ის კონფიგურაციისთვის, დასაწყებად და შესაჩერებლადampler, ანუ მისაღებად სampled მონაცემები და მიიღეთ როგორცampler-ის სტატუსი ან ბოლო შეცდომა. კლასს აქვს შემდეგი საჯარო წევრის ფუნქციები.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

54

8 კლასების / ფუნქციების მითითება

configure () კონფიგურაცია როგორცampლერი
ვირტუალური ResultVoid nlc::SamplerInterface::configure (const DeviceHandle deviceHandle, const Samplerკონფიგურაცია და samplerConfiguration)

პარამეტრები [in] deviceHandle [in] samplerConfiguration
აბრუნებს ResultVoid

განსაზღვრავს რა მოწყობილობას უნდა დააკონფიგურიროთ sampler ამისთვის. განსაზღვრავს კონფიგურაციის ატრიბუტების მნიშვნელობებს. ადასტურებს, რომ void ფუნქცია გაშვებულია.

getData () იღებს sampled მონაცემები.
ვირტუალური შედეგებიampleDataArray nlc::SamplerInterface::getData (const DeviceHandle deviceHandle)

პარამეტრები [in] deviceHandle აბრუნებს შედეგებსampleDataArray

განსაზღვრავს, თუ რა მოწყობილობაზე უნდა მიიღოთ მონაცემები.
აწვდის სampled მონაცემები, რომელიც შეიძლება იყოს ცარიელი მასივი, თუ samplerNotify აქტიურია დაწყებისას.

getLastError () იღებს როგორცampლერის ბოლო შეცდომა.
ვირტუალური ResultVoid nlc::SamplerInterface::getLastError (const DeviceHandle deviceHandle)

აბრუნებს ResultVoid

ადასტურებს, რომ void ფუნქცია გაშვებულია.

getState () იღებს როგორცampლერის სტატუსი.
ვირტუალური შედეგებიamplerState nlc::SamplerInterface::getState (const DeviceHandle deviceHandle)

აბრუნებს შედეგებსampსახელმწიფო

აწვდის სampლერ სახელმწიფო.

დაწყება () იწყება როგორცampლერი
ვირტუალური ResultVoid nlc::SamplerInterface::start (const DeviceHandle deviceHandle, S)amplerNotify*-ებიamplerNotify, int64_t applicationData)

პარამეტრები [in] deviceHandle [in] Sampler Notify [in] applicationData
აბრუნებს ResultVoid

განსაზღვრავს რა მოწყობილობას უნდა დაიწყოს სampler ამისთვის.
განსაზღვრავს, თუ რა არასავალდებულო ინფორმაცია უნდა იყოს მოხსენებული (შეიძლება იყოს nullptr).
ვარიანტი: აპლიკაციებთან დაკავშირებული მონაცემების გადამისამართება (მომხმარებლის მიერ განსაზღვრული 8-ბიტიანი მნიშვნელობის / მოწყობილობის ID / ინდექსი, ან თარიღის დრო, ცვლადის / ფუნქციის მაჩვენებელი და ა.შ.)ampler Notify.
ადასტურებს, რომ void ფუნქცია გაშვებულია.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

55

8 კლასების / ფუნქციების მითითება

გაჩერება () ჩერდება როგორცampლერი
ვირტუალური ResultVoid nlc::SamplerInterface::stop (const DeviceHandle deviceHandle)

პარამეტრები [in] deviceHandle აბრუნებს ResultVoid

განსაზღვრავს რა მოწყობილობას უნდა გააჩეროს სampler ამისთვის. ადასტურებს, რომ void ფუნქცია გაშვებულია.

8.35 სamplerConfiguration struct

ეს სტრუქტურა შეიცავს მონაცემებს sampler-ის კონფიგურაციის პარამეტრები (სტატიკური თუ არა).

საჯარო ატრიბუტები

std:: ვექტორი თვალთვალის მისამართები

12-მდე OD მისამართი უნდა იყოს sampხელმძღვანელობდა.

uint32_t

ვერსია

სტრუქტურის ვერსია.

uint32_t

ხანგრძლივობამილიწამები

Sampლინგის ხანგრძლივობა ms-ში, 1-დან 65535-მდე

uint16_t

პერიოდიმილიწამები

Sampლინგვის პერიოდი ms-ში.

uint16_t

ნომერიOfSamples

Sampნაკლები თანხა.

uint16_t

preTriggerNumberOfSamples

Samples წინასწარ გაშვების თანხა.

ბული

SoftwareImplementation-ის გამოყენებით

გამოიყენეთ პროგრამული უზრუნველყოფის განხორციელება.

ბული

NewFWS-ის გამოყენებითamplerImplementation გამოიყენეთ FW განხორციელება მოწყობილობებისთვის a

FW ვერსია v24xx ან უფრო ახალი.

SamplerMode

რეჟიმი

ნორმალური, განმეორებადი ან უწყვეტი sampლინგი

SamplerTriggerCondition triggerCondition

დაწყების ტრიგერის პირობები: TC_FALSE = 0x00 TC_TRUE = 0x01 TC_SET = 0x10 TC_CLEAR = 0x11 TC_RISING_EDGE = 0x12 TC_FALLING_EDGE = 0x13 TC_BIT_TOGGLE = 0x14 TC_GREATER = 0x15 TC_GREATER_OR_EQUAL = 0x16 TC_LESS = 0x17 TC_LESS_OR_EQUAL = 0x18 TC_EQUAL = 0x19 TC_NOT_EQUAL = 0x1A TC_ONE_EDGE = 0x1B TC_MULTI_EDGE = 0x1C, OdIndex, triggerValue

SamplerTrigger

SamplerTrigger

ტრიგერი დასაწყებად როგორცampler?

სტატიკური საჯარო ატრიბუტები
static constexpr size_t SAMPLER_CONFIGURATION_VERSION = 0x01000000 static constexpr size_t MAX_TRACKED_ADDRESSES = 12
8.36 სampler Notify
გამოიყენეთ ეს კლასი s-ის გასააქტიურებლადampler შეტყობინებები, როდესაც დაიწყებთ როგორცampler. კლასს აქვს შემდეგი საჯარო წევრის ფუნქცია.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

56

8 კლასების / ფუნქციების მითითება

შეტყობინება ()
შეტყობინების ჩანაწერს აწვდის.
ვირტუალური სიცარიელე nlc ::SamplerNotify::notify (const ResultVoid & lastError, const Sampლერსახელმწიფო სamplerState, const std::vector <SampleData> & sampleDatas, int64_t applicationData)

პარამეტრები [in] lastError [in] sampსახელმწიფო
[in] წმampleDatas [in] applicationData

იტყობინება, რომ ბოლო შეცდომა მოხდა, როდესაც sampling. იუწყება სampსტატუსი შეტყობინების დროს: არაკონფიგურირებული / კონფიგურირებული / მზად / გაშვებული / დასრულებული / წარუმატებელი / გაუქმებული. იუწყება სampled-მონაცემთა მასივი. აცნობებს აპლიკაციის სპეციფიკურ მონაცემებს.

8.37 სampleData სტრუქტურა

ეს სტრუქტურა შეიცავს სampled მონაცემები.

uin64_t iterationNumber

იწყება 0-დან და იზრდება მხოლოდ განმეორებით რეჟიმში.

std::vector<SampledValues> შეიცავს s-ის მასივსampled ღირებულებები.

8.38 სampledValue struct

ეს სტრუქტურა შეიცავს სampled ღირებულებები.

in64_t მნიშვნელობა uin64_t CollectTimeMsec

შეიცავს თვალთვალის OD მისამართის მნიშვნელობას.
შეიცავს შეგროვების დროს მილიწამებში, შედარებით sampდასაწყისი.

8.39 სamplerTrigger struct

ეს სტრუქტურა შეიცავს 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_GREATER = 0x15 TC_GREATER_OR_EQUAL = 0x16 TC_LESS = 0x17 TC_LESS_OR_EQUAL = 0x18 TC_EQUAL = 0x19 TC_NOT_EQUAL = 0x1A TC_ONE_EDGE = 0x1B TC_MULTI_EDGE = 0x1C
ტრიგერის OdIndex (მისამართი).
მდგომარეობის მნიშვნელობა ან ბიტის ნომერი (დაწყებული ბიტი ნულიდან).

8.40 სერიული სტრუქტურა

იპოვეთ აქ თქვენი სერიული კომუნიკაციის პარამეტრები და შემდეგი საჯარო ატრიბუტები:

const std::string const SerialBaudRate

BAUD_RATE_OPTIONS_NAME = „სერიული გადაცემის სიჩქარე“ baudRate =SerialBaudRate სტრუქტურა

ვერსია: doc 1.4.2 / NanoLib 1.3.0

57

8 კლასების / ფუნქციების მითითება

const std::string const სერიული პარიტეტი

PARITY_OPTIONS_NAME = „სერიული პარიტეტი“ პარიტეტი = სერიული პარიტეტის სტრუქტურა

8.41 SerialBaudRate struct

იპოვეთ აქ თქვენი სერიული კომუნიკაციის ბაუდის სიხშირე და შემდეგი საჯარო ატრიბუტები:

const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string

BAUD_RATE_7200 = “7200” BAUD_RATE_9600 = “9600” BAUD_RATE_14400 = “14400” BAUD_RATE_19200 = “19200” BAUD_RATE_38400 = “38400 BAUD_56000” 56000 = „57600“ BAUD_RATE_57600 = „115200“ BAUD_RATE_115200 = „128000“ BAUD_RATE_128000 = „256000“

8.42 SerialParity struct

იპოვეთ აქ თქვენი სერიული პარიტეტის ვარიანტები და შემდეგი საჯარო ატრიბუტები:

const std::string const std::string const std::string const std::string const std::string

NONE = "არცერთი" ODD = "კენტი" ლუწი = "ლუწი" MARK = "მონიშვნა" SPACE = "ფართი"

ვერსია: doc 1.4.2 / NanoLib 1.3.0

58

9 ლიცენზიები

9 ლიცენზიები

NanoLib API ინტერფეისის სათაურები და ა.შ.ampწყაროს კოდი ლიცენზირებულია Nanotec Electronic GmbH & Co. KG მიერ Creative Commons Attribution 3.0 Unported ლიცენზიით (CC BY). ბიბლიოთეკის ნაწილები, რომლებიც მოწოდებულია ორობით ფორმატში (ძირითადი და საველე ავტობუსების კომუნიკაციის ბიბლიოთეკები) ლიცენზირებულია Creative Commons AttributionNoDerivatives 4.0 საერთაშორისო ლიცენზიით (CC BY ND).

Creative Commons
შემდეგი ადამიანის მიერ წასაკითხი რეზიუმე არ ჩაანაცვლებს თავად ლიცენზი(ებ)ს. თქვენ შეგიძლიათ იპოვოთ შესაბამისი ლიცენზია creativecommons.org-ზე და ქვემოთ მოცემულ ბმულზე. თქვენ თავისუფლად შეგიძლიათ:

CC BY 3.0
გააზიარე: ნახე მარჯვნივ. ადაპტირება: გადაურიეთ, გარდაქმენით და დააფუძნეთ
მასალა ნებისმიერი მიზნისთვის, თუნდაც კომერციული.

CC BY-ND 4.0
გაზიარება: დააკოპირეთ და გაავრცელეთ მასალა ნებისმიერ მედიუმში ან ფორმატში.

ლიცენზიანტს არ შეუძლია გააუქმოს ზემოაღნიშნული თავისუფლებები, სანამ თქვენ ემორჩილებით შემდეგ სალიცენზიო პირობებს:

CC BY 3.0

CC BY-ND 4.0

Attribution: თქვენ უნდა მიუთითოთ შესაბამისი კრედიტი, Attribution: იხილეთ მარცხნივ. მაგრამ: მიაწოდეთ ამის ბმული

მიაწოდეთ ლიცენზიის ბმული და მიუთითეთ თუ არა

სხვა ლიცენზია.

ცვლილებები განხორციელდა. ამის გაკეთება შეგიძლიათ ნებისმიერში

წარმოებულები არ არის: თუ თქვენ ხელახლა შერევთ, გარდაქმნით ან აშენებთ

გონივრულად, მაგრამ არა ისე, რომ

მასალაზე, თქვენ არ შეგიძლიათ გაავრცელოთ

ადასტურებს, რომ ლიცენზიანტი ადასტურებს თქვენ ან თქვენს გამოყენებას.

შეცვლილი მასალა.

დამატებითი შეზღუდვების გარეშე: თქვენ არ შეგიძლიათ გამოიყენოთ დამატებითი შეზღუდვები: იხილეთ მარცხნივ. სამართლებრივი ტერმინები ან ტექნოლოგიური ზომები, რომლებიც ლეგალურად

შეზღუდოს სხვებს რაიმეს გაკეთება ლიცენზიით

ნებართვებს.

შენიშვნა: თქვენ არ უნდა შეასრულოთ ლიცენზია მასალის ელემენტების საჯარო დომენში ან სადაც თქვენი გამოყენება ნებადართულია მოქმედი გამონაკლისით ან შეზღუდვით.
შენიშვნა: არ არის გაცემული გარანტიები. ლიცენზიამ შეიძლება არ მოგცეთ ყველა ის ნებართვა, რომელიც საჭიროა თქვენი დანიშნულებისამებრ. მაგampსხვა უფლებებმა, როგორიცაა საჯაროობა, კონფიდენციალურობა ან მორალური უფლებები, შეიძლება შეზღუდოს თქვენ მიერ მასალის გამოყენება.

ვერსია: doc 1.4.2 / NanoLib 1.3.0

59

ანაბეჭდი, კონტაქტი, ვერსიები

©2024 Nanotec Electronic GmbH & Co.KGKapellenstr.685622 ფელდკირხენიგერმანიატელ.+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 კოდი: გასწორდა ავტობუსის აპარატურის მითითების მოხსნა.
+ NanoLib-CANopen: Peak PCAN-USB ადაპტერის მხარდაჭერა (IPEH-002021/002022).
> NanoLib Core: შეიცვალა ჟურნალირების უკუკავშირის ინტერფეისი (LogLevel ჩანაცვლდა LogModule-ით). # NanoLib Logger: გამოსწორდა ბირთვსა და მოდულებს შორის გამიჯვნა. # Modbus TCP: გამოსწორდა FW4-ის firmware განახლება. # EtherCAT: გამოსწორდა NanoJ პროგრამის ატვირთვა Core5-ისთვის. # EtherCAT: გამოსწორდა Core5-ის firmware განახლება.
# Modbus RTU: დააფიქსირა დროის პრობლემები დაბალი ბაუდის სიხშირით, პროგრამული უზრუნველყოფის განახლების დროს. # RESTful: დაფიქსირდა NanoJ პროგრამის ატვირთვა.
# NanoLib მოდულები Sampler: სწორი კითხვა სampled ლოგიკური მნიშვნელობები.
+ Java 11 მხარდაჭერა ყველა პლატფორმისთვის. + Python 3.11/3.12 მხარდაჭერა ყველა პლატფორმისთვის. + ახალი ჟურნალის გამოძახების ინტერფეისი (იხamples). + გამოძახების ნიჟარები NanoLib Logger-ისთვის. > განაახლეთ ლოგერი 1.12.0 ვერსიამდე. > NanoLib მოდულები Sampler: ახლავე მხარდაჭერა Nanotec კონტროლერის firmware v24xx. > NanoLib მოდულები Sampler: სტრუქტურის ცვლილება, რომელიც გამოიყენება სampler კონფიგურაცია. > NanoLib მოდულები Sampler: უწყვეტი რეჟიმი გაუთავებელის სინონიმია; ტრიგერის მდგომარეობა მოწმდება ერთხელ; ს-ის რაოდენობაamples უნდა იყოს 0. > NanoLib Modules Sampler: ნორმალური პრიორიტეტი ძაფისთვის, რომელიც აგროვებს მონაცემებს firmware რეჟიმში. > NanoLib მოდულები Sampler: ხელახლა დაწერილი ალგორითმი მზა და გაშვებულ მდგომარეობას შორის გადასვლის დასადგენად. # NanoLib Core: აღარ არის წვდომის დარღვევა (0xC0000005) 2 ან მეტი მოწყობილობის დახურვისას იმავე ავტობუსის აპარატურის გამოყენებით. # NanoLib Core: აღარ არის სეგმენტაციის ხარვეზი Linux-ის ქვეშ PEAK ადაპტერის მიმაგრებისას. # NanoLib მოდულები Sampler: სწორი სampled-მნიშვნელობების კითხვა firmware რეჟიმში. # NanoLib მოდულები Sampler: 502X:04-ის სწორი კონფიგურაცია. # NanoLib მოდულები Sampler: ბუფერების სწორი შერევა არხებთან. # NanoLib-Canopen: გაზრდილი CAN ვადები გამძლეობისთვის და სწორი სკანირებისთვის დაბალ ბაუდრეტებზე. # NanoLib-Modbus: VCP გამოვლენის ალგორითმი სპეციალური მოწყობილობებისთვის (USB-DA-IO).
+ EtherCAT-ის მხარდაჭერა.
+ შენიშვნა VS პროექტის პარამეტრებთან დაკავშირებით, „პროექტის კონფიგურაცია“-ში.
+ getDeviceHardwareGroup(). + getProfinetDCP(isServiceAvailable). + getProfinetDCP(validateProfinetDeviceIp). + autoAssignObjectDictionary(). + getXmlFileსახელი (). + const std::string & 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

+ დამატებულია > შეიცვალა # გამოსწორებულია + rebootDevice(). + შეცდომის კოდი ResourceUnavailable getDeviceBootloaderVersion(), ~VendorId(), ~HardwareVersion(), ~SerialNumber და ~Uid-ისთვის. > firmwareUploadFromFile ახლა ატვირთეთ Firmware FromFile (). > firmwareUpload () ახლა ატვირთეთFirmware (). > bootloaderUploadFromFile () ახლა ატვირთეთBootloaderFromFile (). > bootloaderUpload () ახლა ატვირთეთBootloader (). > bootloaderFirmwareUploadFromFile () ატვირთვისთვისBootloaderFirmwareFromFile (). > bootloaderFirmwareUpload () ახლა ატვირთეთBootloaderFirmware (). > nanojUploadFromFile () ახლა ატვირთეთ NanoJFromFile (). > nanojUpload () ახლა uploadNanoJ (). > objectDictionaryLibrary () ახლა getObjectDictionaryLibrary (). > String_String_Map ახლა StringStringMap. > NanoLib-Common: listAvailableBusHardware-ის და openBusHardwareWithProtocol-ის უფრო სწრაფი შესრულება Ixxat ადაპტერით. > NanoLib-CANopen: თუ ავტობუსის აპარატურის პარამეტრები ცარიელია, გამოიყენება ნაგულისხმევი პარამეტრები (1000k ბაუდრაიტი, Ixxat ავტობუსის ნომერი 0). > NanoLib-RESTful: ადმინისტრატორის ნებართვა მოძველებულია Windows-ში Ethernet ჩამტვირთავებთან კომუნიკაციისთვის, თუ npcap / winpcap დრაივერი ხელმისაწვდომია. # NanoLib-CANopen: ავტობუსის აპარატურა ახლა იხსნება ავარიის გარეშე ცარიელი პარამეტრებით. # NanoLib-Common: openBusHardwareWithProtocol () მეხსიერების გაჟონვის გარეშე.
+ Linux ARM64 მხარდაჭერა. + USB მასობრივი შენახვის / REST / Profinet DCP მხარდაჭერა. + checkConnectionState(). + getDeviceBootloaderVersion(). + ResultProfinetDevices. + NlcErrorCode (ჩაანაცვლა NanotecExceptions). + NanoLib Modbus: VCP / USB ჰაბი გაერთიანებულია USB-ზე. > Modbus TCP სკანირება აბრუნებს შედეგებს. < Modbus TCP კომუნიკაციის შეყოვნება მუდმივი რჩება.
+ მეტი ObjectEntryDataType (რთული და პროფესიონალური)file-specific). + IOError დააბრუნებს შეცდომას, თუ connectDevice () და scanDevices () ვერაფერს პოულობენ. + CanOpen / Modbus-ისთვის ნომინალური ტაიმ-აუტი მხოლოდ 100 ms-ია.
+ Modbus-ის მხარდაჭერა (პლუს USB ჰაბი VCP-ის საშუალებით). + თავი საკუთარი Linux პროექტის შექმნა. + extraHardwareSpecifier BusHardwareId-ში (). + extraId_ და extraStringId_ DeviceId-ში ().
+ setBusState(). + getDeviceBootloaderBuildId(). + getDeviceFirmwareBuildId(). + getDeviceHardwareVersion(). # შეცდომების გამოსწორება.
გამოცემა.

პროდუქტი
0.8.0 0.7.1 0.7.0 0.5.1 0.5.1

ვერსია: doc 1.4.2 / NanoLib 1.3.0

61

დოკუმენტები / რესურსები

Nanotic NanoLib C++ პროგრამირება [pdf] მომხმარებლის სახელმძღვანელო
NanoLib C პროგრამირება, C პროგრამირება, პროგრამირება

ცნობები

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი არ გამოქვეყნდება. მონიშნულია აუცილებელი ველები *