Nanotic NanoLib C++ Programming
Taarifa ya Bidhaa
Vipimo
- Jina la Bidhaa: NanoLib
- Kupanga programu Lugha: C++
- Toleo la Bidhaa: 1.3.0
- Toleo la Mwongozo wa Mtumiaji: 1.4.2
Maktaba ya NanoLib imeundwa kwa ajili ya programu ya udhibiti wa programu kwa vidhibiti vya Nanotec. Inatoa kiolesura cha mtumiaji, utendakazi msingi, na maktaba za mawasiliano ili kuwezesha uundaji wa programu za udhibiti.
Maagizo ya Matumizi ya Bidhaa
- Kabla ya Kuanza:
- Hakikisha kuwa mfumo wako unakidhi mahitaji ya maunzi yaliyoainishwa kwenye mwongozo. Hadhira inayolengwa kwa bidhaa hii inajumuisha wasanidi programu wanaotaka kuunda programu ya kudhibiti kwa vidhibiti vya Nanotec.
- Kuanza:
- Ili kuanza kutumia NanoLib, fuata hatua hizi:
- Anza kwa kuleta NanoLib kwenye mradi wako.
- Sanidi mipangilio ya mradi wako inapohitajika.
- Jenga mradi wako ili kujumuisha utendakazi wa NanoLib.
- Kuunda Miradi:
- Unaweza kuunda miradi ya mazingira ya Windows na Linux. Fuata maagizo mahususi yaliyotolewa katika mwongozo kwa kila jukwaa.
- Marejeleo ya Madarasa / Kazi:
- Rejelea mwongozo wa mtumiaji kwa mwongozo wa kina juu ya madarasa na utendaji unaopatikana katika NanoLib kwa programu ya kudhibiti programu.
Maswali Yanayoulizwa Mara kwa Mara
- Swali: Madhumuni ya NanoLib ni nini?
- A: NanoLib ni maktaba ya programu ya udhibiti wa programu kwa vidhibiti vya Nanotec, kutoa utendaji muhimu na uwezo wa mawasiliano.
- Swali: Ninawezaje kuanza na NanoLib?
- A: Anza kwa kuleta NanoLib kwenye mradi wako, kusanidi mipangilio ya mradi, na kujenga mradi wako ili kutumia vipengele vya NanoLib.
"`
Mwongozo wa Mtumiaji NanoLib
C++
Inatumika kwa toleo la bidhaa 1.3.0
Toleo la Mwongozo wa Mtumiaji: 1.4.2
Kusudi la hati na makubaliano
Hati hii inaelezea usanidi na utumiaji wa maktaba ya NanoLib na ina marejeleo ya aina zote na vitendaji vya kupanga programu yako ya udhibiti kwa vidhibiti vya Nanotec. Tunatumia aina zifuatazo za maandishi:
Maandishi yaliyopigiwa mstari huashiria marejeleo tofauti au kiungo.
Example 1: Kwa maagizo kamili juu ya NanoLibAccessor, angalia Setup. Kwa mfanoample 2: Sakinisha kiendeshi cha Ixxat na uunganishe adapta ya CAN-to-USB. Maandishi ya italiki yanamaanisha: Hiki ni kitu kilichopewa jina, njia ya menyu/kipengee, kichupo/ file jina au (ikiwa ni lazima) usemi wa lugha ya kigeni.
Example 1: Chagua File > Mpya > Hati tupu. Fungua kichupo cha Zana na uchague Maoni. Kwa mfanoample 2: Hati hii inagawanya watumiaji (= Nutzer; usuario; utente; utilisateur; utente n.k.) kutoka:
– Mtumiaji wa mtu wa tatu (= Drittnutzer; tercero usuario; terceiro utente; tiers utilisateur; terzo utente n.k.). - Mtumiaji wa mwisho (= Endnutzer; usuario final; utente final; utilisateur final; utente finale n.k.).
Courier huweka alama kwenye vizuizi vya msimbo au amri za programu. Kwa mfanoample 1: Kupitia Bash, piga simu sudo make install ili kunakili vitu vilivyoshirikiwa; kisha piga ldconfig. Kwa mfanoample 2: Tumia kazi ifuatayo ya NanoLibAccessor kubadilisha kiwango cha ukataji miti katika NanoLib:
// ***** kibadala cha C++ *****
utupu setLoggingLevel(kiwango cha LogLevel);
Maandishi mazito yanasisitiza maneno ya mtu binafsi yenye umuhimu mkubwa. Vinginevyo, alama za mshangao zilizo kwenye mabano zinasisitiza umuhimu muhimu(!).
Example 1: Jilinde mwenyewe, wengine na vifaa vyako. Fuata vidokezo vyetu vya usalama vya jumla ambavyo vinatumika kwa bidhaa zote za Nanotec.
Example 2: Kwa ulinzi wako mwenyewe, pia fuata vidokezo maalum vya usalama vinavyotumika kwa bidhaa hii mahususi. Kitenzi cha kubofya pamoja kinamaanisha kubofya kupitia kitufe cha pili cha kipanya ili kufungua menyu ya muktadha n.k.
Example 1: Co-click kwenye file, chagua Badili jina, na ubadilishe jina file. Kutample 2: Kuangalia mali, bonyeza-click kwenye file na chagua Mali.
Toleo: hati 1.4.2 / NanoLib 1.3.0
4
Kabla ya kuanza
Kabla ya kuanza kutumia NanoLib, tayarisha Kompyuta yako na ujijulishe kuhusu matumizi yaliyokusudiwa na mapungufu ya maktaba.
2.1 Mahitaji ya mfumo na maunzi
ILANI Hitilafu kutokana na utendakazi wa 32-bit au mfumo uliokatishwa! Tumia, na udumishe mara kwa mara, mfumo wa 64-bit. Angalia kusitishwa kwa OEM na ~maelekezo.
NanoLib 1.3.0 inaauni bidhaa zote za Nanotec na CANopen, Modbus RTU (pia USB kwenye bandari ya mtandao pepe), Modbus TCP, EtherCat, na Profinet. Kwa NanoLibs za zamani: Tazama mabadiliko kwenye alama. Kwa hatari yako tu: matumizi ya mfumo wa urithi. Kumbuka: Fuata maagizo halali ya OEM ili kuweka muda wa kusubiri kuwa wa chini iwezekanavyo ikiwa utapata matatizo unapotumia adapta ya USB yenye FTDI.
Mahitaji (64-bit mfumo lazima)
Windows 10 au 11 w/ Visual Studio 2019 toleo la 16.8 au matoleo mapya zaidi na Windows SDK 10.0.20348.0 (toleo la 2104) au la baadaye
C++ zinazoweza kusambazwa tena za 2017 au zaidi CANopen: Ixxat VCI au kiendeshi cha msingi cha PCAN (si lazima) Moduli ya EtherCat / Profinet DCP: Npcap au WinPcap RESTful Moduli: Npcap, WinPcap, au ruhusa ya msimamizi
wasiliana na viboreshaji vyaendeshaji vya Ethernet
Linux w/ Ubuntu 20.04 LTS hadi 24 (zote x64 na arm64)
Vichwa vya Kernel na pakiti ya libpopt-dev Profinet DCP: CAP_NET_ADMIN na CAP_NET_RAW abili-
hufunga CANopen: Ixxat ECI kiendeshi au Peak PCAN-USB adapta EtherCat: CAP_NET_ADMIN, CAP_NET_RAW na
Uwezo wa CAP_SYS_NICE UTULIVU: Uwezo wa CAP_NET_ADMIN kuwasiliana na Eth-
ernet bootloaders (inapendekezwa pia: CAP_NET_RAW)
Lugha, adapta za basi la shambani, nyaya
C++ GCC 7 au toleo jipya zaidi (Linux)
EtherCAT: Kebo ya Ethaneti VCP / kitovu cha USB: sasa hifadhi sare ya USB ya USB: Kebo ya USB REST: Kebo ya Ethaneti CANopen: Ixxat USB-to-CAN V2; Na-
notec ZK-USB-CAN-1, Adapta ya kilele cha PCANUSB Hakuna msaada wa Ixxat kwa Ubuntu kwenye arm64
Modbus RTU: Nanotec ZK-USB-RS485-1 au adapta sawa; Kebo ya USB kwenye bandari ya mtandao pepe (VCP)
Modbus TCP: Kebo ya Ethernet kulingana na hifadhidata ya bidhaa
2.2 Matumizi yaliyokusudiwa na hadhira
NanoLib ni maktaba ya programu na sehemu ya programu kwa ajili ya uendeshaji, na mawasiliano na, vidhibiti vya Nanotec katika anuwai ya matumizi ya viwandani na kwa watengenezaji programu wenye ujuzi ipasavyo pekee.
Kwa sababu ya maunzi (PC) na mfumo wa uendeshaji usio na uwezo wa wakati halisi, NanoLib si ya matumizi katika programu ambazo zinahitaji mwendo wa mhimili-nyingi unaolandanishwa au kwa ujumla zinazozingatia wakati.
Kwa hali yoyote huwezi kuunganisha NanoLib kama sehemu ya usalama katika bidhaa au mfumo. Wakati wa kuwasilisha kwa watumiaji wa mwisho, ni lazima uongeze arifa na maagizo yanayolingana ya matumizi salama na uendeshaji salama kwa kila bidhaa iliyo na kijenzi kilichoundwa na Nanotec. Ni lazima upitishe ilani zote za onyo zilizotolewa na Nanotec moja kwa moja kwa mtumiaji wa mwisho.
2.3 Wigo wa utoaji na udhamini
NanoLib huja kama folda ya *.zip kutoka kwa upakuaji wetu webtovuti ya EMEA / APAC au AMERICA. Hifadhi ipasavyo na ufungue upakuaji wako kabla ya kusanidi. Kifurushi cha NanoLib kina:
Toleo: hati 1.4.2 / NanoLib 1.3.0
5
2 Kabla ya kuanza
Vichwa vya kiolesura kama msimbo wa chanzo (API)
Kazi kuu kama maktaba katika umbizo la binary: nano-
Maktaba zinazowezesha mawasiliano: nanolibm_ lib.dll
[yourfieldbus].dll n.k.Exampmradi wa: Example.sln (Visual Studio
mradi) na mfanoample.cpp (kuu file)
Kwa upeo wa udhamini, tafadhali zingatia a) sheria na masharti yetu ya EMEA / APAC au AMERICA na b) masharti yote ya leseni. Kumbuka: Nanotec haiwajibikiwi kwa ubora mbovu au usiofaa, utunzaji, usakinishaji, uendeshaji, matumizi na matengenezo ya vifaa vya wahusika wengine! Kwa usalama unaostahili, fuata maagizo halali ya OEM kila wakati.
Toleo: hati 1.4.2 / NanoLib 1.3.0
6
Usanifu wa NanoLib
Muundo wa kawaida wa programu ya NanoLib hukuruhusu kupanga vidhibiti / basi la shambani vinavyoweza kugeuzwa kukufaa karibu na msingi uliojengwa mapema. NanoLib ina moduli zifuatazo:
Kiolesura cha mtumiaji (API)
Msingi wa NanoLib
Interface na madarasa ya msaidizi ambayo Maktaba ambayo
Maktaba za mawasiliano maktaba mahususi za Fieldbus ambazo
kukufikia kwa kidhibiti chako tekeleza kiolesura cha API do kati ya NanoLib
OD (kamusi ya kitu)
kuingiliana na maktaba za basi.
vifaa vya msingi na basi.
msingi wa NanoLib msingi func-
kabila.
3.1 Kiolesura cha mtumiaji
Kiolesura cha mtumiaji kina kiolesura cha kichwa files unaweza kutumia kufikia vigezo vya kidhibiti. Madarasa ya kiolesura cha mtumiaji kama ilivyoelezewa katika marejeleo ya Madarasa / kazi hukuruhusu:
Unganisha kwenye maunzi (adapta ya basi la shambani) na kifaa cha kidhibiti. Fikia OD ya kifaa, kusoma/kuandika vigezo vya kidhibiti.
3.2 Msingi wa NanoLib
Msingi wa NanoLib unakuja na maktaba ya kuleta nanolib.lib. Inatekeleza utendakazi wa kiolesura cha mtumiaji na inawajibika kwa:
Kupakia na kusimamia maktaba za mawasiliano. Kutoa utendaji wa kiolesura cha mtumiaji katika NanoLibAccessor. Kiingilio hiki cha mawasiliano kina-
faini seti ya shughuli unazoweza kutekeleza kwenye msingi wa NanoLib na maktaba za mawasiliano.
3.3 Maktaba za mawasiliano
Kando na nanotec.services.nanolib.dll (inafaa kwa programu yako ya hiari ya Plug & Drive), NanoLib inatoa maktaba zifuatazo za mawasiliano:
nanolibm_canopen.dll nanolibm_modbus.dll
nanolibm_ethercat.dll nanolibm_restful-api.dll
nanolibm_usbmmsc.dll nanolibm_profinet.dll
Maktaba zote huweka safu ya uondoaji ya maunzi kati ya msingi na kidhibiti. Msingi huzipakia wakati wa kuanza kutoka kwa folda ya mradi iliyoteuliwa na kuzitumia kuanzisha mawasiliano na kidhibiti kwa itifaki inayolingana.
Toleo: hati 1.4.2 / NanoLib 1.3.0
7
Kuanza
Soma jinsi ya kusanidi NanoLib kwa mfumo wako wa uendeshaji ipasavyo na jinsi ya kuunganisha maunzi inavyohitajika.
4.1 Andaa mfumo wako
Kabla ya kusakinisha viendeshi vya adapta, tayarisha PC yako kwenye mfumo wa uendeshaji kwanza. Ili kuandaa Kompyuta kwenye Windows OS yako, sakinisha MS Visual Studio yenye viendelezi vya C++. Ili kusakinisha make na gcc na Linux Bash, piga simu sudo apt install build-essentials. Washa uwezo wa CAP_NET_ADMIN, CAP_NET_RAW, na CAP_SYS_NICE kwa programu inayotumia NanoLib: 1. Piga simu ya sudo setcap 'cap_net_admin,cap_net_raw,cap_sys_nice+eip'
jina>. 2. Kisha tu, sakinisha viendeshi vya adapta yako.
4.2 Sakinisha kiendeshi cha adapta ya Ixxat ya Windows
Ni baada tu ya usakinishaji unaostahili wa kiendeshi, unaweza kutumia adapta ya Ixxat ya USB-to-CAN V2. Soma mwongozo wa bidhaa wa viendeshi vya USB, ili ujifunze ikiwa/jinsi ya kuwezesha mfumo pepe (VCP). 1. Pakua na usakinishe kiendeshaji cha Ixxat cha VCI 4 cha Windows kutoka www.ixxat.com. 2. Unganisha adapta ya Ixxat ya USB-to-CAN V2 kwenye Kompyuta kupitia USB. 3. Na Kidhibiti cha Kifaa: Angalia ikiwa kiendeshi na adapta zote zimesakinishwa/zinatambulika.
4.3 Sakinisha kiendeshaji cha adapta ya Peak kwa Windows
Ni baada tu ya usakinishaji unaostahili wa kiendeshi, unaweza kutumia adapta ya PCAN-USB ya Peak. Soma mwongozo wa bidhaa wa viendeshi vya USB, ili ujifunze ikiwa/jinsi ya kuwezesha mfumo pepe (VCP). 1. Pakua na usakinishe usanidi wa kiendesha kifaa cha Windows (= kifurushi cha usakinishaji na viendeshi vya kifaa, zana, na
API) kutoka http://www.peak-system.com. 2. Unganisha adapta ya PCAN-USB ya Peak kwa Kompyuta kupitia USB. 3. Na Kidhibiti cha Kifaa: Angalia ikiwa kiendeshi na adapta zote zimesakinishwa/zinatambulika.
4.4 Sakinisha kiendeshi cha adapta ya Ixxat ya Linux
Ni baada tu ya usakinishaji unaostahili wa kiendeshi, unaweza kutumia adapta ya Ixxat ya USB-to-CAN V2. Kumbuka: Adapta zingine zinazotumika zinahitaji ruhusa yako kwa sudo chmod +777/dev/ttyACM* (* nambari ya kifaa). Soma mwongozo wa bidhaa wa viendeshi vya USB, ili ujifunze ikiwa/jinsi ya kuwezesha mfumo pepe (VCP). 1. Sakinisha programu inayohitajika kwa kiendeshi cha ECI na programu ya onyesho:
sudo apt-get update apt-get install libusb-1.0-0-dev libusb-0.1-4 libc6 libstdc++6 libgcc1 buildessential
2. Pakua kiendeshi cha ECI-for-Linux kutoka www.ixxat.com. Ifungue kupitia:
unzip eci_driver_linux_amd64.zip
3. Sakinisha kiendeshi kupitia:
cd /EciLinux_amd/src/KernelModule sudo make install-usb
4. Angalia usakinishaji wa dereva uliofaulu kwa kuandaa na kuanzisha programu ya onyesho:
cd /EciLinux_amd/src/EciDemos/ sudo tengeneza cd /EciLinux_amd/bin/release/ ./LinuxEciDemo
Toleo: hati 1.4.2 / NanoLib 1.3.0
8
4 Kuanza
4.5 Sakinisha kiendeshaji cha adapta ya Peak ya Linux
Ni baada tu ya usakinishaji unaostahili wa kiendeshi, unaweza kutumia adapta ya PCAN-USB ya Peak. Kumbuka: Adapta zingine zinazotumika zinahitaji ruhusa yako kwa sudo chmod +777/dev/ttyACM* (* nambari ya kifaa). Soma mwongozo wa bidhaa wa viendeshi vya USB, ili ujifunze ikiwa/jinsi ya kuwezesha mfumo pepe (VCP). 1. Angalia ikiwa Linux yako ina vichwa vya kernel: ls /usr/src/linux-headers-`uname -r`. Ikiwa sivyo, sakinisha
them: sudo apt-get install linux-headers-`uname -r` 2. Ni sasa tu, sakinisha pakiti ya libpopt-dev: sudo apt-get install libpopt-dev 3. Pakua kifurushi cha viendeshaji kinachohitajika (kilele-linux-driver- xxx.tar.gz) kutoka kwa www.peak-system.com. 4. Ili kuifungua, tumia: tar xzf peak-linux-driver-xxx.tar.gz 5. Katika folda ambayo haijapakiwa: Unganisha na usakinishe viendeshaji, maktaba ya msingi ya PCAN, n.k.: tengeneza yote.
sudo make install 6. Kuangalia chaguo za kukokotoa, chomeka adapta ya PCAN-USB.
a) Angalia moduli ya kernel:
lsmod | grep pcan b) ... na maktaba iliyoshirikiwa:
ls -l /usr/lib/libpcan*
Kumbuka: Matatizo ya USB3 yakitokea, tumia mlango wa USB2.
4.6 Unganisha maunzi yako
Ili uweze kuendesha mradi wa NanoLib, unganisha kidhibiti kinachooana cha Nanotec kwenye Kompyuta yako kwa kutumia adapta yako. 1. Kwa kebo inayofaa, unganisha adapta yako kwa mtawala. 2. Unganisha adapta kwenye PC kulingana na karatasi ya data ya adapta. 3. Nguvu kwa mtawala kwa kutumia usambazaji wa umeme unaofaa. 4. Ikihitajika, badilisha mipangilio ya mawasiliano ya kidhibiti cha Nanotec kama ilivyoelekezwa katika mwongozo wa bidhaa.
4.7 Pakia NanoLib
Kwa mwanzo wa kwanza na misingi ya haraka na rahisi, unaweza (lakini lazima usitumie) kutumia ex wetuampmradi le. 1. Kulingana na eneo lako: Pakua NanoLib kutoka kwa yetu webtovuti ya EMEA / APAC au AMERICA. 2. Fungua zipu ya kifurushi files/folda na uchague chaguo moja: Kwa misingi ya haraka na rahisi: Angalia Kuanzisha ya zamaniampmradi le. Kwa ubinafsishaji wa hali ya juu katika Windows: Tazama Kuunda mradi wako wa Windows. Kwa ubinafsishaji wa hali ya juu katika Linux: Tazama Kuunda mradi wako wa Linux.
Toleo: hati 1.4.2 / NanoLib 1.3.0
9
Kuanzia zamaniampmradi le
NanoLib ikiwa imepakiwa ipasavyo, exampmradi hukuonyesha kupitia utumiaji wa NanoLib na kidhibiti cha Nanotec. Kumbuka: Kwa kila hatua, maoni katika ex iliyotolewaample code kueleza kazi zinazotumika. Exampmradi wa le unajumuisha: `*_functions_example.*' files, ambayo ina utekelezaji wa kiolesura cha NanoLib hufanya kazi `*_callback_example.*' files, ambayo ina utekelezwaji wa simu mbali mbali (scan, data na
kukata miti) `menu_*.*' file, ambayo ina mantiki ya menyu na nambari ya Example. * file, ambayo ni programu kuu, kuunda menyu na kuanzisha vigezo vyote vilivyotumika Sampler_example. * file, ambayo ina examputekelezaji wa sampmatumizi ya. Unaweza kupata ex zaidiamples, pamoja na baadhi ya amri za mwendo kwa aina mbalimbali za uendeshaji, katika Msingi wa Maarifa kwenye nanotec.com. Zote zinaweza kutumika katika Windows au Linux.
Katika Windows na Visual Studio 1. Fungua Example.sln file. 2. Fungua example.cpp. 3. Kukusanya na kukimbia exampnambari.
Katika Linux kupitia Bash 1. Fungua chanzo file, nenda kwenye folda iliyo na maudhui ambayo hayajafungwa. kuu file kwa example ni
example.cpp. 2. Katika bash, piga simu:
a. "sudo make install" kunakili vitu vilivyoshirikiwa na piga ldconfig. b. "fanya yote" ili kuunda jaribio litekelezwe. 3. Folda ya pipa ina ex inayoweza kutekelezwaample file. Kwa bash: Nenda kwenye folda ya pato na chapa ./example. Ikiwa hakuna hitilafu itatokea, vipengee vyako vilivyoshirikiwa sasa vimesakinishwa ipasavyo, na maktaba yako iko tayari kutumika. Ikiwa kosa linasoma ./example: hitilafu wakati wa kupakia maktaba zilizoshirikiwa: libnanolib.so: haiwezi kufungua kitu kilichoshirikiwa file: Hapana vile file au saraka, usakinishaji wa vitu vilivyoshirikiwa umeshindwa. Katika kesi hii, fuata hatua zifuatazo. 4. Unda folda mpya ndani ya /usr/local/lib (haki za msimamizi zinahitajika). Ndani ya bash, kwa hivyo chapa:
sudo mkdir /usr/local/lib/nanotec
5. Nakili vitu vyote vilivyoshirikiwa kutoka kwa zip filefolda ya lib:
sakinisha ./lib/*.so /usr/local/lib/nanotec/
6. Angalia maudhui ya folda lengwa na:
ls -al /usr/local/lib/nanotec/
Inapaswa kuorodhesha kitu kilichoshirikiwa files kutoka kwa folda ya lib. 7. Endesha ldconfig kwenye folda hii:
sudo ldconfig /usr/local/lib/nanotec/
Example inatekelezwa kama programu ya CLI na hutoa kiolesura cha menyu. Maingizo ya menyu yanategemea muktadha na yatawezeshwa au kuzimwa, kulingana na hali ya muktadha. Wanakupa uwezekano wa kuchagua na kutekeleza vitendaji mbalimbali vya maktaba kufuatia mtiririko wa kawaida wa kushughulikia kidhibiti: 1. Angalia Kompyuta kwa maunzi yaliyounganishwa (adapta) na uorodheshe. 2. Anzisha muunganisho kwa adapta. 3. Changanua basi kwa vifaa vya kidhibiti vilivyounganishwa. 4. Unganisha kwenye kifaa.
Toleo: hati 1.4.2 / NanoLib 1.3.0
10
5 Kuanzia zamaniampmradi le
5. Jaribu kipengele kimoja au zaidi cha maktaba: Soma/andika kutoka/hadi kamusi ya kifaa cha kidhibiti, sasisha programu dhibiti, pakia na endesha programu ya NanoJ, endesha kiendeshaji na uisanishe, sanidi na utumie ukataji miti.ampler.
6. Funga uunganisho, kwanza kwa kifaa, kisha kwa adapta.
Toleo: hati 1.4.2 / NanoLib 1.3.0
11
Kuunda mradi wako wa Windows
Unda, kusanya na endesha mradi wako wa Windows ili kutumia NanoLib.
6.1 Ingiza NanoLib
Ingiza kichwa cha NanoLib files na maktaba kupitia MS Visual Studio.
1. Fungua Visual Studio. 2. Kupitia Unda mradi mpya > Console App C++ > Inayofuata: Chagua aina ya mradi. 3. Taja mradi wako (hapa: NanolibTest) ili kuunda folda ya mradi katika Kichunguzi cha Suluhisho. 4. Chagua Maliza. 5. Fungua madirisha file mchunguzi na uende kwenye folda mpya ya mradi iliyoundwa. 6. Unda folda mbili mpya, inc na lib. 7. Fungua folda ya kifurushi cha NanoLib. 8. Kutoka hapo: Nakili kichwa files kutoka kwa folda ya pamoja kwenye folda ya mradi wako inc na zote .lib na .dll
files kwenye folda yako mpya ya mradi lib. 9. Angalia folda ya mradi wako kwa muundo unaofaa, kwa mfanoample:
ect folda ya muundo unaofaa:
. 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.vcbxTjest. NanolibTest.vcxproj.user NanolibTest.sln
6.2 Sanidi mradi wako
Tumia Solution Explorer katika MS Visual Studio kusanidi miradi ya NanoLib. Kumbuka: Kwa uendeshaji sahihi wa NanoLib, chagua usanidi wa toleo (sio utatuzi!) katika mipangilio ya mradi wa Visual C++; kisha ujenge na uunganishe mradi huo na nyakati za VC za ugawaji tena wa C++ [2022].
1. Katika Kichunguzi cha Suluhisho: Nenda kwenye folda ya mradi wako (hapa: NanolibTest). 2. Bonyeza-click folda ili kufungua menyu ya muktadha. 3. Chagua Sifa. 4. Amilisha Mipangilio Yote na majukwaa Yote. 5. Chagua C/C++ na uende kwenye Orodha za Ziada za Jumuisha. 6. Ingiza: $(ProjectDir)Nanolib/includes;%(AdditionalIncludeDirectories) 7. Chagua Kiungo na uende kwenye Saraka za Ziada za Maktaba. 8. Ingiza: $(ProjectDir)Nanolib;%(AdditionalLibraryDirectories) 9. Panua Kiungo na uchague Ingizo. 10.Nenda kwa Vitegemezi vya Ziada na uweke: nanolib.lib;%(AdditionalDependencies) 11.Thibitisha kupitia Sawa.
Toleo: hati 1.4.2 / NanoLib 1.3.0
12
6 Kuunda mradi wako wa Windows
12.Nenda kwenye Usanidi > C++ > Lugha > Kiwango cha Lugha > ISO C++17 Kawaida na uweke kiwango cha lugha kuwa C++17 (/std:c++17).
6.3 Jenga mradi wako
Jenga mradi wako wa NanoLib katika MS Visual Studio. 1. Fungua *.cpp kuu file (hapa: nanolib_example.cpp) na uhariri msimbo, ikiwa inahitajika. 2. Chagua Jenga > Kidhibiti cha Usanidi. 3. Badilisha majukwaa ya suluhu Amilifu kuwa x64. 4. Thibitisha kupitia Funga. 5. Chagua Unda > Unda suluhisho. 6. Hakuna kosa? Angalia ikiwa matokeo yako ya kukusanya yanaripoti ipasavyo:
1>—— Safi imeanza: Mradi: NanolibTest, Configuration: Debug x64 —–========== Safi: 1 imefaulu, 0 haikufaulu, 0 iliruka ===========
Toleo: hati 1.4.2 / NanoLib 1.3.0
13
7 Kuunda mradi wako wa Linux
7 Kuunda mradi wako wa Linux
Unda, kusanya na endesha mradi wako wa Linux ili kutumia NanoLib. 1. Katika kisanduku cha usakinishaji cha NanoLib ambacho hakijafungwa: Fungua /nanotec_nanolib. 2. Tafuta vitu vyote vilivyoshirikiwa kwenye tar.gz file. 3. Teua chaguo moja: Sakinisha kila lib ama kwa Makefile au kwa mkono.
7.1 Sakinisha vitu vilivyoshirikiwa na Makefile
Tumia Makefile kwa kutumia Linux Bash kusakinisha kiotomatiki zote chaguo-msingi *.so files. 1. Kupitia Bash: Nenda kwenye folda iliyo na makefile. 2. Nakili vitu vilivyoshirikiwa kupitia:
sudo make install 3. Thibitisha kupitia:
ldconfig
7.2 Sakinisha vitu vilivyoshirikiwa kwa mkono
Tumia Bash kusakinisha zote *.so files ya NanoLib kwa mikono. 1. Kupitia Bash: Unda folda mpya ndani ya /usr/local/lib. 2. Haki za msimamizi zinahitajika! Aina:
sudo mkdir /usr/local/lib/nanotec 3. Badilisha kwenye folda ya kifurushi cha usakinishaji ambacho hakijafungwa. 4. Nakili vitu vyote vilivyoshirikiwa kutoka kwa folda ya lib kupitia:
sakinisha ./nanotec_nanolib/lib/*.so /usr/local/lib/nanotec/ 5. Angalia maudhui ya folda lengwa kupitia:
ls -al /usr/local/lib/nanotec/ 6. Angalia ikiwa vitu vyote vilivyoshirikiwa kutoka kwa folda ya lib vimeorodheshwa. 7. Endesha ldconfig kwenye folda hii kupitia:
sudo ldconfig /usr/local/lib/nanotec/
7.3 Unda mradi wako
Ukiwa na vitu vyako vilivyoshirikiwa vilivyosakinishwa: Unda mradi mpya wa Linux NanoLib yako. 1. Kupitia Bash: Unda folda mpya ya mradi (hapa: NanoLibTest) kupitia:
mkdir NanoLibTest cd NanoLibTest
2. Nakili kichwa files kwa folda iliyojumuishwa (hapa: inc) kupitia: mkdir inc cp / FILE IS>/nanotec_nanolib/inc/*.hpp inc
3. Unda kuu file (NanoLibTest.cpp) kupitia: #include "accessor_factory.hpp" #include
Toleo: hati 1.4.2 / NanoLib 1.3.0
14
7 Kuunda mradi wako wa Linux
int main(){ nlc::NanoLibAccessor *accessor = getNanoLibAccessor();
nlc::ResultBusHwIds result = accessor->listAvailableBusHardware();
if(result.hasError()) {std::cout << result.getError() << std::endl; }
else{ std::cout << “Mafanikio” << std::endl; }
futa nyongeza; kurudi 0; }
4. Angalia folda ya mradi wako kwa muundo unaofaa:
. Mtihani wa NanoLib
inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result.hpp NanoLibTest.cpp
7.4 Kusanya na kujaribu mradi wako
Fanya Linux NanoLib yako iwe tayari kutumika kupitia Bash.
1. Kupitia Bash: Kusanya kuu file kupitia:
g++ -Wall -Wextra -pedantic -I./inc -c NanoLibTest.cpp -o NanoLibTest
2. Unganisha inayoweza kutekelezwa pamoja kupitia:
g++ -Wall -Wextra -pedantic -I./inc -o jaribu NanoLibTest.o L/usr/local/lib/nanotec -lnanolib -ldl
3. Endesha programu ya majaribio kupitia:
./mtihani
4. Angalia ikiwa Bash yako inaripoti ipasavyo:
mafanikio
Toleo: hati 1.4.2 / NanoLib 1.3.0
15
8 Madarasa / marejeleo ya kazi
8 Madarasa / marejeleo ya kazi
Pata hapa orodha ya madarasa ya kiolesura cha NanoLib na kazi za wanachama wao. Maelezo ya kawaida ya chaguo za kukokotoa ni pamoja na utangulizi mfupi, ufafanuzi wa chaguo la kukokotoa na kigezo/orodha ya kurejesha:
ExampleFunction () Inakuambia kwa ufupi kazi hufanya nini.
utupu halisi nlc::NanoLibKifuasi::MfampleFunction (Param_a const & param_a, Param_b const & param_B)
Vigezo param_a param_b
Hurejesha ResultVoid
Maoni ya ziada ikiwa inahitajika. Maoni ya ziada ikiwa inahitajika.
8.1 NanoLibAccessor
Darasa la kiolesura linalotumika kama mahali pa kuingilia NanoLib. Mtiririko wa kawaida wa kazi unaonekana kama hii:
1. Anza kwa kuchanganua maunzi kwa NanoLibAccessor.listAvailableBusHardware (). 2. Weka mipangilio ya mawasiliano na BusHardwareOptions (). 3. Fungua muunganisho wa maunzi na NanoLibAccessor.openBusHardwareWithProtocol (). 4. Changanua basi kwa vifaa vilivyounganishwa na NanoLibAccessor.scanDevices (). 5. Ongeza kifaa kwa NanoLibAccessor.addDevice (). 6. Unganisha kwenye kifaa na NanoLibAccessor.connectDevice (). 7. Baada ya kumaliza operesheni, futa kifaa na NanoLibAccessor.disconnectDevice (). 8. Ondoa kifaa kwa NanoLibAccessor.removeDevice (). 9. Funga muunganisho wa maunzi na NanoLibAccessor.closeBusHardware ().
NanoLibAccessor ina kazi zifuatazo za wanachama wa umma:
listAvailableBusHardware () Tumia chaguo hili kuorodhesha maunzi yanayopatikana ya basi la shambani.
virtual ResultBusHwIds nlc::NanoLibAccessor::listAvailableBusHardware ()
Hurejesha ResultBusHwIds
Inatoa safu ya kitambulisho cha fieldbus.
openBusHardwareWithProtocol () Tumia chaguo hili kuunganisha maunzi ya basi.
virtual ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (BusHardwareId const & busHwId, BusHardwareOptions const & busHwOpt)
Vigezo busHwId busHwOpt
Hurejesha ResultVoid
Inabainisha fieldbus ya kufunguliwa. Hubainisha chaguo za kufungua basi la shambani. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
isBusHardwareOpen () Tumia chaguo hili kuangalia kama muunganisho wa maunzi ya fieldbus yako umefunguliwa.
virtual ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (consst BusHardwareId & busHwId, const BusHardwareOptions & busHwOpt)
Toleo: hati 1.4.2 / NanoLib 1.3.0
16
8 Madarasa / marejeleo ya kazi
Vigezo BusHardwareId Hurejesha kweli
uongo
Inabainisha kila basi la shambani la kufunguliwa. Vifaa vimefunguliwa. Vifaa vimefungwa.
getProtocolSpecificAccessor () Tumia chaguo hili la kukokotoa kupata kipengee cha ufikiaji mahususi cha itifaki.
virtual ResultVoid nlc::NanoLibAccessor::getProtocolSpecificAccessor (BusHardwareId const & busHwId)
Vigezo busHwId Huleta ResultVoid
Inabainisha fieldbus ya kupata accessor. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
getProfinetDCP () Tumia chaguo hili la kukokotoa kurudisha marejeleo kwenye kiolesura cha Profinet DCP.
virtual ProfinetDCP & getProfinetDCP ()
Hurejesha ProfinetDCP
getSamplerInterface () Tumia chaguo hili kupata marejeleo ya sampler interface.
mtandaoni SamplerInterface & getSamplerInterface ()
Inarudisha SamplerInterface
Inahusu sampler interface darasa.
setBusState () Tumia chaguo hili la kukokotoa kuweka hali mahususi ya itifaki ya basi.
virtual ResultVoid nlc::NanoLibAccessor::setBusState (const BusHardwareId & busHwId, const std::string & state)
Vigezo hali ya busHwId
Hurejesha ResultVoid
Inabainisha fieldbus ya kufunguliwa. Huweka hali mahususi ya basi kama thamani ya mfuatano. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
scanDevices () Tumia chaguo hili kutafuta vifaa kwenye mtandao.
Virtual ResultDeviceIds nlc::NanoLibAccessor::scanDevices (const BusHardwareId & busHwId, NlcScanBusCallback* callback)
Vigezo busHwId callback
Hurejesha ResultDeviceIds IOError
Inabainisha fieldbus ya kuchanganua. Kifuatilia maendeleo cha NlcScanBusCallback. Inatoa safu ya kitambulisho cha kifaa. Inafahamisha kuwa kifaa hakipatikani.
Toleo: hati 1.4.2 / NanoLib 1.3.0
17
8 Madarasa / marejeleo ya kazi
addDevice ()
Tumia chaguo hili la kukokotoa ili kuongeza kifaa cha basi kilichoelezewa na deviceId kwenye orodha ya vifaa vya ndani vya NanoLib, na kurudisha deviceHandle kwa ajili yake.
virtual ResultDeviceHandle nlc::NanoLibAccessor::addDevice (DeviceId const & deviceId)
Vigezo deviceId Hurejesha ResultDeviceHandle
Hubainisha kifaa cha kuongeza kwenye orodha. Hutoa mpini wa kifaa.
connectDevice () Tumia kipengele hiki kuunganisha kifaa kwa deviceHandle.
virtual ResultVoid nlc::NanoLibAccessor::connectDevice (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultVoid
Hitilafu ya IO
Hubainisha kifaa cha basi NanoLib inaunganisha nacho. Inathibitisha kuwa kitendakazi batili kimeendeshwa. Inafahamisha kuwa kifaa hakipatikani.
getDeviceName () Tumia kipengele hiki kupata jina la kifaa kwa deviceHandle.
virtual ResultString nlc::NanoLibAccessor::getDeviceName (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultString
Hubainisha NanoLib inapata jina la kifaa cha basi. Hutoa majina ya kifaa kama mfuatano.
getDeviceProductCode () Tumia chaguo hili kupata msimbo wa bidhaa wa kifaa kwa deviceHandle.
virtual ResultInt nlc::NanoLibAccessor::getDeviceProductCode (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultInt
Hubainisha kifaa cha basi NanoLib hupata msimbo wa bidhaa. Hutoa misimbo ya bidhaa kama nambari kamili.
getDeviceVendorId () Tumia chaguo hili kupata kitambulisho cha mchuuzi wa kifaa kwa deviceHandle.
virtual ResultInt nlc::NanoLibAccessor::getDeviceVendorId (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultInt
RasilimaliHaipatikani
Hubainisha kifaa cha basi NanoLib hupata kitambulisho cha mchuuzi. Hutoa vitambulisho vya muuzaji kama nambari kamili. Hufahamisha kuwa hakuna data inayopatikana.
Toleo: hati 1.4.2 / NanoLib 1.3.0
18
8 Madarasa / marejeleo ya kazi
getDeviceId () Tumia chaguo hili kupata kitambulisho cha kifaa mahususi kutoka kwa orodha ya ndani ya NanoLib.
virtual ResultDeviceId nlc::NanoLibAccessor::getDeviceId (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultDeviceId
Hubainisha kifaa cha basi NanoLib hupata kitambulisho cha kifaa. Hutoa kitambulisho cha kifaa.
getDeviceIds () Tumia chaguo hili kupata kitambulisho cha vifaa vyote kutoka kwa orodha ya ndani ya NanoLib.
virtual ResultDeviceIds nlc::NanoLibAccessor::getDeviceIds ()
Hurejesha ResultDeviceIds
Hutoa orodha ya kitambulisho cha kifaa.
getDeviceUid () Tumia chaguo hili la kukokotoa kupata kitambulisho cha kipekee cha kifaa (96 bit / 12 byte) kwa deviceHandle.
virtual ResultArrayByte nlc::NanoLibAccessor::getDeviceUid (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultArrayByte
RasilimaliHaipatikani
Hubainisha kifaa cha basi NanoLib hupata kitambulisho cha kipekee kwa ajili yake. Hutoa vitambulisho vya kipekee kama safu ya baiti. Hufahamisha kuwa hakuna data inayopatikana.
getDeviceSerialNumber () Tumia chaguo hili la kukokotoa kupata nambari ya ufuatiliaji ya kifaa kwa deviceHandle.
virtual ResultString NanolibAccessor::getDeviceSerialNumber (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultString
RasilimaliHaipatikani
Hubainisha kifaa cha basi NanoLib hupata nambari ya serial kwa ajili yake. Hutoa nambari za mfuatano kama mfuatano. Hufahamisha kuwa hakuna data inayopatikana.
getDeviceHardwareGroup () Tumia chaguo hili kupata kikundi cha maunzi cha kifaa cha basi kwa deviceHandle.
virtual ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareGroup (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultInt
Hubainisha kifaa cha basi NanoLib hupata kikundi cha maunzi.
Hutoa vikundi vya maunzi kama nambari kamili.
getDeviceHardwareVersion () Tumia chaguo hili kupata toleo la maunzi la kifaa cha basi kwa deviceHandle.
virtual ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareVersion (DeviceHandle const deviceHandle)
Toleo: hati 1.4.2 / NanoLib 1.3.0
19
8 Madarasa / marejeleo ya kazi
Vigezo kifaaHandle
Inarudi
ResultString ResourceHaipatikani
Hubainisha kifaa cha basi NanoLib inapata toleo la maunzi. Hutoa majina ya kifaa kama mfuatano. Hufahamisha kuwa hakuna data inayopatikana.
getDeviceFirmwareBuildId () Tumia chaguo hili kupata kitambulisho cha muundo dhibiti wa kifaa cha basi kwa deviceHandle.
virtual ResultDeviceId nlc::NanoLibAccessor::getDeviceFirmwareBuildId (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultString
Hubainisha kifaa cha basi NanoLib hupata kitambulisho cha muundo wa programu dhibiti.
Hutoa majina ya kifaa kama mfuatano.
getDeviceBooloaderVersion () Tumia chaguo hili kupata toleo la kifaa cha kuwasha kifaa cha basi kwa deviceHandle.
virtual ResultInt nlc::NanoLibAccessor::getDeviceBooloaderVersion (DeviceHandle const deviceHandle)
Vigezo kifaaHandle
Inarudi
ResultInt ResourceHaipatikani
Hubainisha ni kifaa gani cha basi NanoLib hupata toleo la bootloader. Hutoa matoleo ya bootloader kama nambari kamili. Hufahamisha kuwa hakuna data inayopatikana.
getDeviceBooloaderBuildId () Tumia chaguo hili la kukokotoa kupata kitambulisho cha muundo wa kipakiaji cha kifaa cha basi kwa deviceHandle.
virtual ResultDeviceId nlc::NanoLibAccessor:: (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultString
Hubainisha ni kifaa gani cha basi NanoLib hupata kitambulisho cha muundo wa bootloader.
Hutoa majina ya kifaa kama mfuatano.
rebootDevice () Tumia chaguo hili kuzima na kuwasha upya kifaa kwa deviceHandle.
virtual ResultVoid nlc::NanoLibAccessor::rebootDevice (const DeviceHandle deviceHandle)
Vigezo deviceHandle Returns ResultVoid
Inabainisha fieldbus ili kuwasha upya. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
getDeviceState () Tumia chaguo hili kupata hali mahususi ya itifaki ya kifaa.
virtual ResultString nlc::NanoLibAccessor::getDeviceState (DeviceHandle const deviceHandle)
Vigezo kifaaHandle
Hubainisha kifaa cha basi NanoLib hupata hali kwa ajili yake.
Toleo: hati 1.4.2 / NanoLib 1.3.0
20
8 Madarasa / marejeleo ya kazi
HurejeshaResultString
Hutoa majina ya kifaa kama mfuatano.
setDeviceState () Tumia chaguo hili la kukokotoa kuweka hali mahususi ya itifaki ya kifaa.
virtual ResultVoid nlc::NanoLibAccessor::setDeviceState (const DeviceHandle deviceHandle, const std::string & state)
Vigezo vya kifaaHandle hali
Hurejesha ResultVoid
Hubainisha kifaa cha basi NanoLib huweka hali kwa ajili ya nini. Huweka hali mahususi ya basi kama thamani ya mfuatano. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
getConnectionState ()
Tumia chaguo hili la kukokotoa ili kupata hali ya mwisho ya muunganisho wa kifaa mahususi kwa kifaaHandle (= Kimetenganishwa, Kimeunganishwa, KimeunganishwaBooloader)
virtual ResultConnectionState nlc::NanoLibAccessor::getConnectionState (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultConnectionState
Hubainisha kifaa cha basi NanoLib hupata hali ya muunganisho wake.
Hutoa hali ya muunganisho (= Imekatika, Imeunganishwa, ImeunganishwaBooloader).
checkConnectionState ()
Ikiwa tu hali ya mwisho inayojulikana haikuunganishwa: Tumia chaguo hili la kukokotoa ili kuangalia na ikiwezekana kusasisha hali ya muunganisho wa kifaa mahususi kwa kifaaHandle na kwa kujaribu utendakazi kadhaa wa hali mahususi.
hali halisi ya muunganisho wa matokeo nlc::NanoLibKibali::angaliaJimbo laMuunganisho (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultConnectionState
Hubainisha kifaa cha basi NanoLib hukagua hali ya muunganisho.
Inatoa hali ya muunganisho (= Haijatenganishwa).
assignObjectDictionary () Tumia kitendakazi hiki cha mwongozo kukabidhi kamusi ya kitu (OD) kwa KifaaHushughulikia peke yako.
virtual ResultObjectDictionary nlc::NanoLibAccessor::assignObjectDictionary (DeviceHandle const deviceHandle, ObjectDictionary const & objectDictionary)
Vigezo kifaaHushughulikia kituKamusi
Hurejesha ResultObjectDictionary
Hubainisha ni kifaa gani cha basi NanoLib inakabidhi OD. Inaonyesha sifa za kamusi ya kitu.
AutoAssignObjectDictionary ()
Tumia utaratibu huu otomatiki kuruhusu NanoLib kukabidhi kamusi ya kitu (OD) kwa deviceHandle. Inapopata na kupakia OD inayofaa, NanoLib huikabidhi kiotomatiki kwa kifaa. Kumbuka: Ikiwa OD inayooana tayari imepakiwa kwenye maktaba ya kitu, NanoLib itaitumia kiotomatiki bila kuchanganua saraka iliyowasilishwa.
virtual ResultObjectDictionary nlc::NanoLibAccessor::autoAssignObjectDictionary (DeviceHandle const deviceHandle, const std::string & dictionariesLocationPath)
Toleo: hati 1.4.2 / NanoLib 1.3.0
21
8 Madarasa / marejeleo ya kazi
Vigezo kifaaHandle
Inarudi
kamusiLocationPath ResultObjectKamusi
Hubainisha ni kifaa gani cha basi NanoLib kitachanganua kiotomatiki kwa OD zinazofaa. Inabainisha njia ya saraka ya OD. Inaonyesha sifa za kamusi ya kitu.
getAssignedObjectDictionary ()
Tumia chaguo hili la kukokotoa kupata kamusi ya kipengee iliyokabidhiwa kwa kifaa na deviceHandle.
virtual ResultObjectDictionary nlc::NanoLibAccessor::getAssignedObjectDictionary (DeviceHandle const device
Hushughulikia)
Vigezo deviceHandle Returns ResultObjectDictionary
Hubainisha kifaa cha basi NanoLib hupata OD iliyokabidhiwa kwa ajili yake. Inaonyesha sifa za kamusi ya kitu.
getObjectDictionaryLibrary () Chaguo hili la kukokotoa hurejesha rejeleo la OdLibrary.
virtual OdLibrary& nlc::NanoLibAccessor::getObjectDictionaryLibrary ()
Hurejesha OdLibrary&
Hufungua maktaba yote ya OD na kamusi zake za kitu.
setLoggingLevel () Tumia kitendakazi hiki kuweka maelezo ya kumbukumbu yanayohitajika (na log file ukubwa). Kiwango chaguomsingi ni Maelezo.
virtual void nlc::NanoLibAccessor::setLoggingLevel (kiwango cha LogLevel)
Kiwango cha vigezo
Maelezo ya logi yafuatayo yanawezekana:
0 = Fuatilia 1 = Tatua 2 = Maelezo 3 = Onya 4 = Hitilafu 5 = Muhimu 6 = Imezimwa
Kiwango cha chini kabisa (logi kubwa zaidi file); huweka maelezo yoyote yanayowezekana, pamoja na kuanza/kusimamisha programu. Taarifa ya utatuzi wa kumbukumbu (= matokeo ya muda, maudhui yaliyotumwa au kupokewa, n.k.) Kiwango chaguo-msingi; kumbukumbu ujumbe wa habari. Matatizo ya kumbukumbu ambayo yalitokea lakini hayatasimamisha algorithm ya sasa. Kumbukumbu tu shida kali ambayo ilisimamisha algorithm. Kiwango cha juu (logi ndogo zaidi file); huzima ukataji; hakuna logi zaidi wakati wote. Hakuna ukataji miti hata kidogo.
setLoggingCallback ()
Tumia chaguo hili la kukokotoa kuweka kielekezi cha kurudisha nyuma kumbukumbu na moduli ya kumbukumbu (= maktaba) kwa urejeshaji huo wa simu (sio kwa kiweka kumbukumbu chenyewe).
virtual void nlc::NanoLibAccessor::setLoggingCallback (NlcLoggingCallback* callback, const nlc::LogModule & logModule)
Vigezo *Regi ya simuModuli
Inaweka kiashiria cha kurudi nyuma. Huweka mwito wa kupiga tena simu (sio kiweka kumbukumbu!) kwa maktaba yako.
0 = NanolibCore 1 = NanolibCANopen 2 = NanolibModbus 3 = NanolibEtherCAT
Huwasha upigaji simu kwa msingi wa NanoLib pekee. Huwasha upigaji simu wa CANopen pekee. Huwasha upigaji simu wa Modbus pekee. Huwasha upigaji simu wa EtherCAT pekee.
Toleo: hati 1.4.2 / NanoLib 1.3.0
22
8 Madarasa / marejeleo ya kazi
4 = NanolibRest 5 = NanolibUSB
Huwasha upigaji simu wa REST-pekee. Huwasha upigaji simu wa USB pekee.
unsetLoggingCallback () Tumia chaguo hili la kukokotoa ili kughairi kielekezi cha upigaji simu cha kumbukumbu.
virtual void nlc ::NanoLibAccessor::unsetLoggingCallback ()
somaNambari () Tumia chaguo hili la kukokotoa kusoma thamani ya nambari kutoka kwa kamusi ya kitu.
virtual ResultInt nlc::NanoLibAccessor::readNumber (consst DeviceHandle deviceHandle, const OdIndex odIndex)
Vigezo vya kifaaHushughulikia odIndex
Hurejesha ResultInt
Hubainisha kifaa cha basi NanoLib inasoma kutoka. Inabainisha faharasa (ndogo) ya kusoma kutoka. Hutoa thamani ya nambari ambayo haijafasiriwa (inaweza kusainiwa, bila kusainiwa, kurekebisha maadili ya biti16.16).
readNumberArray () Tumia chaguo hili la kukokotoa kusoma safu za nambari kutoka kwa kamusi ya kitu.
virtual ResultArrayInt nlc::NanoLibAccessor::readNumberArray (const DeviceHandle deviceHandle, const uint16_t index)
Vigezo vya kifaaHandle index
Hurejesha ResultArrayInt
Hubainisha kifaa cha basi NanoLib inasoma kutoka. Faharasa ya kitu cha safu. Inatoa safu kamili.
readBytes () Tumia chaguo hili la kukokotoa kusoma baiti za kiholela (data ya kitu cha kikoa) kutoka kwa kamusi ya kipengee.
virtual ResultArrayByte nlc::NanoLibAccessor::readBytes (const DeviceHandle deviceHandle, const OdIndex odIndex)
Vigezo vya kifaaHushughulikia odIndex
Hurejesha ResultArrayByte
Hubainisha kifaa cha basi NanoLib inasoma kutoka. Inabainisha faharasa (ndogo) ya kusoma kutoka. Inatoa safu ya baiti.
readString () Tumia chaguo hili la kukokotoa kusoma mifuatano kutoka kwenye saraka ya kitu.
virtual ResultString nlc::NanoLibAccessor::readString (consst DeviceHandle deviceHandle, const OdIndex odIndex)
Vigezo vya kifaaHushughulikia odIndex
HurejeshaResultString
Hubainisha kifaa cha basi NanoLib inasoma kutoka. Inabainisha faharasa (ndogo) ya kusoma kutoka. Hutoa majina ya kifaa kama mfuatano.
Toleo: hati 1.4.2 / NanoLib 1.3.0
23
8 Madarasa / marejeleo ya kazi
andikaNambari () Tumia chaguo hili la kukokotoa kuandika thamani za nambari kwenye saraka ya kitu.
virtual ResultVoid nlc::NanoLibAccessor::writeNumber (consst DeviceHandle deviceHandle, int64_t thamani, const OdIndex odIndex, int bitLength isiyotiwa saini)
Vigezo kifaaHushughulikia thamani odIndex bitLength
Hurejesha ResultVoid
Hubainisha kifaa cha basi NanoLib huandikia. Thamani isiyotafsiriwa (inaweza kusainiwa, bila kusainiwa, kurekebisha 16.16). Inabainisha faharasa (ndogo) ya kusoma kutoka. Urefu kwa kidogo. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
writeBytes () Tumia chaguo hili la kukokotoa kuandika baiti za kiholela (data ya kitu cha kikoa) kwenye saraka ya kitu.
virtual ResultVoid nlc::NanoLibAccessor::writeBytes (const DeviceHandle deviceHandle, const std::vector na data, const OdIndex odIndex)
Vigezo kifaaHushughulikia data odIndex
Hurejesha ResultVoid
Hubainisha kifaa cha basi NanoLib huandikia. Baiti vekta / safu. Inabainisha faharasa (ndogo) ya kusoma kutoka. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
pakiaFirmware ()
Tumia chaguo hili kusasisha programu dhibiti yako.
virtual ResultVoid nlc::NanoLibAccessor::pakiaFirmware (const DeviceHandle deviceHandle, const std::vector & fwData, NlcDataTransferCallback* piga simu)
Vigezo kifaaHandle fwData NlcDataTransferCallback
Hurejesha ResultVoid
Hubainisha ni kifaa gani cha basi ambacho NanoLib inasasisha. Safu iliyo na data ya programu. Kifuatilia maendeleo ya data. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
uploadFirmwareKutokaFile ()
Tumia chaguo hili kusasisha programu dhibiti yako kwa kupakia yake file.
virtual ResultVoid nlc::NanoLibAccessor::pakiaFirmwareKutokaFile (const DeviceHandle deviceHandle, const std::string & absoluteFilePath, NlcDataTransferCallback* callback)
Vigezo kifaaShikilia kabisaFileNjia ya NlcDataTransferCallback
Hurejesha ResultVoid
Hubainisha ni kifaa gani cha basi ambacho NanoLib inasasisha. Njia ya kwenda file iliyo na data ya firmware (std::string). Kifuatilia maendeleo ya data. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
Toleo: hati 1.4.2 / NanoLib 1.3.0
24
8 Madarasa / marejeleo ya kazi
uploadBootloader ()
Tumia chaguo hili kusasisha kidhibiti chako cha kuwasha kiendeshaji.
virtual ResultVoid nlc::NanoLibAccessor::pakiaBooloader (const DeviceHandle deviceHandle, const std::vekta & btData, NlcDataTransferCallback* piga simu)
Vigezo kifaaHandle btData NlcDataTransferCallback
Hurejesha ResultVoid
Hubainisha ni kifaa gani cha basi ambacho NanoLib inasasisha. Mkusanyiko ulio na data ya bootloader. Kifuatilia maendeleo ya data. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
pakiaBootloaderKutokaFile ()
Tumia chaguo hili kusasisha kidhibiti chako cha kupakia vidhibiti kwa kupakia file.
virtual ResultVoid nlc::NanoLibAccessor::pakiaBooloaderKutokaFile (consst DeviceHandle deviceHandle, const std::string & bootloaderAbsoluteFilePath, NlcDataTransferCallback* callback)
Vigezo vya kifaaHushughulikia kipakiaji cha boot kabisaFileNjia ya NlcDataTransferCallback
Hurejesha ResultVoid
Hubainisha ni kifaa gani cha basi ambacho NanoLib inasasisha. Njia ya kwenda file iliyo na data ya bootloader (std::string). Kifuatilia maendeleo ya data. Inathibitisha kuwa kitendakazi batili kimetekelezwa.
pakiaBootloaderFirmware ()
Tumia chaguo hili kusasisha kidhibiti chako cha kupakia vifaa na programu dhibiti.
virtual ResultVoid nlc::NanoLibAccessor::pakiaBooloaderFirmware (const DeviceHandle deviceHandle, const std::vekta & btData, const std::vector & fwData, NlcDataTransferCallback* piga simu)
Vigezo kifaaHandle btData fwData NlcDataTransferCallback
Hurejesha ResultVoid
Hubainisha ni kifaa gani cha basi ambacho NanoLib inasasisha. Mkusanyiko ulio na data ya bootloader. Safu iliyo na data ya programu. Kifuatilia maendeleo ya data. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
pakiaBootloaderFirmwareKutokaFile ()
Tumia kipengele hiki kusasisha kidhibiti chako cha kupakia kiendeshaji na programu dhibiti kwa kupakia faili ya files.
virtual ResultVoid nlc::NanoLibAccessor::pakiaBooloaderFirmwareKutokaFile (consst DeviceHandle deviceHandle, const std::string & bootloaderAbsoluteFileNjia, const std::string & absoluteFilePath, NlcDataTransferCallback* callback)
Vigezo vya kifaaHushughulikia kipakiaji cha boot kabisaFileNjia kabisaFileNjia ya NlcDataTransferCallback
Hurejesha ResultVoid
Hubainisha ni kifaa gani cha basi ambacho NanoLib inasasisha. Njia ya kwenda file iliyo na data ya bootloader (std::string). Njia ya kwenda file iliyo na data ya programu dhibiti (uint8_t). Kifuatilia maendeleo ya data. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
Toleo: hati 1.4.2 / NanoLib 1.3.0
25
8 Madarasa / marejeleo ya kazi
pakiaNanoJ ()
Tumia chaguo hili la kukokotoa la umma kupakia programu ya NanoJ kwa kidhibiti chako.
virtual ResultVoid nlc::NanoLibAccessor:: uploadNanoJ (DeviceHandle const deviceHandle, std::vekta const & vmmData, NlcDataTransferCallback* kurudi nyuma)
Vigezo kifaaHushughulikia vmmData NlcDataTransferCallback
Hurejesha ResultVoid
Hubainisha kifaa cha basi NanoLib hupakia. Mkusanyiko ulio na data ya NanoJ. Kifuatilia maendeleo ya data. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
uploadNanoJFromFile ()
Tumia kitendakazi hiki cha umma kupakia programu ya NanoJ kwa kidhibiti chako kwa kupakia faili ya file.
virtual ResultVoid nlc::NanoLibAccessor::pakiaNanoJKutokaFile (const DeviceHandle deviceHandle, const std::string & absoluteFilePath, NlcDataTransferCallback* callback)
Vigezo kifaaShikilia kabisaFileNjia ya NlcDataTransferCallback
Hurejesha ResultVoid
Hubainisha kifaa cha basi NanoLib hupakia. Njia ya kwenda file iliyo na data ya NanoJ (std::string). Kifuatilia maendeleo ya data. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
ondoaKifaa () Tumia chaguo hili la kukokotoa kukata muunganisho wa kifaa chako kwa deviceHandle.
virtual ResultVoid nlc::NanoLibAccessor::disconnectDevice (DeviceHandle const deviceHandle)
Vigezo deviceHandle Returns ResultVoid
Hubainisha kifaa cha basi NanoLib hutenganisha nacho. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
removeDevice () Tumia chaguo hili la kukokotoa ili kuondoa kifaa chako kwenye orodha ya kifaa cha ndani cha NanoLib.
virtual ResultVoid nlc::NanoLibAccessor::removeDevice (consst DeviceHandle deviceHandle)
Vigezo deviceHandle Returns ResultVoid
Hubainisha ni kifaa gani cha basi ambacho NanoLib kinaorodhesha. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
closeBusHardware () Tumia chaguo hili kukata muunganisho kutoka kwa maunzi yako ya fieldbus.
virtual ResultVoid nlc::NanoLibAccessor::closeBusHardware (BusHardwareId const & busHwId)
Vigezo busHwId Huleta ResultVoid
Inabainisha fieldbus ya kutenganisha kutoka. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
Toleo: hati 1.4.2 / NanoLib 1.3.0
26
8 Madarasa / marejeleo ya kazi
8.2 BusHardwareId
Tumia darasa hili kutambua maunzi ya basi moja kwa moja au kutofautisha maunzi tofauti ya basi kutoka kwa jingine. Darasa hili (bila vitendaji vya seti kuwa lisiloweza kubadilika kutoka uundaji na kuendelea) pia linashikilia habari juu ya:
Maunzi (= jina la adapta, adapta ya mtandao n.k.) Itifaki ya kutumia (= Modbus TCP, CANopen n.k.) Kiashirio cha maunzi cha basi (= jina la serial la bandari, Jina la Kirafiki la MAC
anwani nk.)
BusHardwareId () [1/3] Mjenzi anayeunda kifaa kipya cha kitambulisho cha maunzi ya basi.
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_, std::string const & protocol_, std::string const & hardwareSpecifier_, std::string const & name_)
Vigezo busHardware_ protocol_ hardwareSpecifier_ extraHardwareSpecifier_ name_
Aina ya vifaa (= ZK-USB-CAN-1 nk). Itifaki ya mawasiliano ya basi (= CANopen nk.). Kiainishi cha maunzi (= COM3 nk.). Kiainishi cha ziada cha maunzi (sema, maelezo ya eneo la USB). Jina la kirafiki (= AdapterName (Port) n.k.).
BusHardwareId () [2/3] Muundaji anayeunda kifaa kipya cha kitambulisho cha maunzi ya basi, na chaguo la kibainishi cha ziada cha maunzi.
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_, std::string const & protocol_, std::string const & hardwareSpecifier_, std::string const & extraHardwareSpecifier_, std::string const & name_)
Vigezo busHardware_ protocol_ hardwareSpecifier_ extraHardwareSpecifier_ name_
Aina ya vifaa (= ZK-USB-CAN-1 nk). Itifaki ya mawasiliano ya basi (= CANopen nk.). Kiainishi cha maunzi (= COM3 nk.). Kiainishi cha ziada cha maunzi (sema, maelezo ya eneo la USB). Jina la kirafiki (= AdapterName (Port) n.k.).
BusHardwareId () [3/3] Mjenzi anayenakili busHardwareId iliyopo.
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)
Vigezo busHardwareId
Hutaja kitambulisho cha maunzi ya basi ili kunakili kutoka.
equals () Inalinganisha kitambulisho kipya cha maunzi ya basi na zilizopo.
bool nlc::BusHardwareId::sawa (BusHardwareId const & nyingine) const
Vigezo vingine Hurudi kweli
Kitu kingine cha darasa moja. Ikiwa zote mbili ni sawa katika maadili yote.
Toleo: hati 1.4.2 / NanoLib 1.3.0
27
8 Madarasa / marejeleo ya kazi
uongo
Ikiwa maadili yanatofautiana.
getBusHardware () Husoma kamba ya maunzi ya basi.
std::string nlc::BusHardwareId::getBusHardware () const
Hurejesha kamba
getHardwareSpecifier () Husoma kamba ya kiambishi cha maunzi ya basi (= jina la mtandao n.k.).
std::string nlc::BusHardwareId::getHardwareSpecifier () const
Hurejesha kamba
getExtraHardwareSpecifier () Husoma kamba ya kibainishi cha maunzi ya ziada ya basi (= anwani ya MAC n.k.).
std::string nlc::BusHardwareId::getExtraHardwareSpecifier () const
Hurejesha kamba
getName () Husoma jina linalofaa la maunzi ya basi.
std::string nlc::BusHardwareId::getName () const
Hurejesha kamba
getProtocol () Husoma mfuatano wa itifaki ya basi.
std::string nlc::BusHardwareId::getProtocol () const
Hurejesha kamba
toString () Hurejesha kitambulisho cha maunzi ya basi kama kamba.
std::string nlc::BusHardwareId::toString () const
Hurejesha kamba
8.3 Chaguzi za BusHardware
Tafuta katika darasa hili, katika orodha ya thamani-msingi ya mifuatano, chaguo zote zinazohitajika ili kufungua maunzi ya basi.
Toleo: hati 1.4.2 / NanoLib 1.3.0
28
8 Madarasa / marejeleo ya kazi
BusHardwareOptions () [1/2] Huunda kifaa kipya cha chaguo la maunzi ya basi.
nlc::Chaguo zaVifaa vya Bus::Chaguo zaVifaa vya Basi () Tumia chaguo la kukokotoa () kuongeza jozi za thamani-msingi.
BusHardwareOptions () [2/2] Huunda kifaa kipya cha chaguo za maunzi ya basi na ramani ya thamani-msingi tayari iko.
nlc::Chaguo zaBusHardware::Chaguo zaVifaa vya basi (std::map const & chaguzi)
Chaguzi za vigezo
Ramani iliyo na chaguo za maunzi ya basi kufanya kazi.
addOption () Huunda vitufe na maadili ya ziada.
void nlc::BusHardwareChaguo::ongezaChaguo (std::string const & key, std::string const & value)
Thamani ya ufunguo wa vigezo
Example: BAUD_RATE_OPTIONS_NAME, angalia chaguo-msingi za basi_hw_options_
Example: BAUD_RATE_1000K, angalia bus_hw_options_defaults
sawa () Inalinganisha Chaguzi za BusHardware na zilizopo.
bool nlc::BusHardwareChaguo::sawa (BusHardwareOptions const & nyingine) const
Vigezo vingine Hurudi kweli
uongo
Kitu kingine cha darasa moja. Ikiwa kitu kingine kina chaguzi zote sawa. Ikiwa kitu kingine kina funguo au maadili tofauti.
getOptions () Husoma jozi zote za thamani-msingi zilizoongezwa.
std:: ramani nlc::BusHardwareChaguo::getOptions () const
Hurejesha ramani ya kamba
toString () Hurejesha vitufe / thamani zote kama mfuatano.
std::string nlc::BusHardwareId::toString () const
Hurejesha kamba
8.4 BushHwOptionsDefault
Darasa hili la chaguo-msingi za usanidi lina sifa zifuatazo za umma:
Toleo: hati 1.4.2 / NanoLib 1.3.0
29
8 Madarasa / marejeleo ya kazi
const CanBus const Serial const RESTfulBus const EtherCATBus
canBus = CanBus () serial = Serial () restfulBus = RESTfulBus() ethercatBus = EtherCATBus()
8.5 CanBaudRate
Muundo ambao una vidhibiti vya mabasi ya CAN katika sifa zifuatazo za umma:
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
BAUD_RATE_1000K = “1000k” BAUD_RATE_800K = “800k” BAUD_RATE_500K = “500k” BAUD_RATE_250K = “250k” BAUD_RATE_125K = “125k” BAUD_RATE_100KRATEK = 100 BAUD_50 BAUD_50 TE_20K = “20k” BAUD_RATE_10K = “k10k” BAUD_RATE_5K = “5k”
8.6 Basi
Darasa la chaguo-msingi za usanidi na sifa zifuatazo za umma:
const std::string const CanBaudRate const Ixxat
BAUD_RATE_OPTIONS_NAME = "inaweza kiwango cha ubovu wa adapta" baudRate = CanBaudRate () ixxat = Ixxat ()
8.7 CanOpenNmtService
Kwa huduma ya NMT, muundo huu una hali za CANopen NMT kama maadili ya mfuatano katika sifa zifuatazo za umma:
const std::string const std::string const std::string const std::string const std::string
ANZA = “ANZA” STOP = “SIMAMA” PRE_OPERATIONAL = “PRE_OPERATIONAL” WEKA UPYA = “WEKA UPYA” RESET_COMMUNICATION = “RESET_COMMUNICATION”
8.8 CanOpenNmtState
Muundo huu una hali za CANopen NMT kama maadili ya mfuatano katika sifa zifuatazo za umma:
const std::string const std::string const std::string const std::string const std::string
IMESIMAMA = “IMESIMAMA” PRE_OPERATIONAL = “PRE_OPERATIONAL” OPERATIONAL = “OPERATIONAL” INITIALIZATION = “INTIALIZATION” ISIYOJULIKANA = “HAIJULIKANI”
8.9 Muundo wa EtherCATBus
Muundo huu una chaguo za usanidi wa mawasiliano ya EtherCAT katika sifa zifuatazo za umma:
Toleo: hati 1.4.2 / NanoLib 1.3.0
30
8 Madarasa / marejeleo ya kazi
const std::string NETWORK_FIRMWARE_STATE_OP- Hali ya mtandao inachukuliwa kama hali ya programu dhibiti. Inakubalika
TION_NAME = "Hali ya Firmware ya Mtandao"
thamani (chaguo-msingi = PRE_OPERATIONAL):
EtherCATSstate::PRE_OPERATIONAL EtherCATstate::SAFE_OPERATIONAL EtherCATstate::OPERATIONAL
const std::string DEFAULT_NETWORK_FIRMWARE_ STATE = "PRE_OPERATIONAL"
const std::string EXCLUSIVE_LOCK_TIMEOUT_OP- Muda umeisha katika milisekunde ili kupata kufuli ya kipekee kuwashwa
TION_NAME = "Muda wa Kufunga kwa Pamoja"
mtandao (chaguo-msingi = 500 ms).
const unsigned int DEFAULT_EXCLUSIVE_LOCK_ TIMEOUT = "500"
const std::string SHARED_LOCK_TIMEOUT_OPTION_ Muda umeisha kwa milisekunde ili kupata kufuli iliyoshirikiwa kuwashwa
NAME = "Muda wa Kufunga kwa Pamoja"
mtandao (chaguo-msingi = 250 ms).
const unsigned int DEFAULT_SHARED_LOCK_TIMEOUT = "250"
const std::string READ_TIMEOUT_OPTION_NAME = Muda umeisha katika milisekunde kwa uendeshaji wa kusoma (chaguo-msingi
"Muda wa Kusoma"
= 700 ms).
const unsigned int DEFAULT_READ_TIMEOUT = "700"
const std::string WRITE_TIMEOUT_OPTION_NAME = Muda umeisha katika milisekunde kwa operesheni ya kuandika (chaguo-msingi
"Weka Muda wa Kuandika"
= 200 ms).
const unsigned int DEFAULT_WRITE_TIMEOUT = "200"
const std::string READ_WRITE_ATTEMPTS_OPTION_ Upeo wa majaribio ya kusoma au kuandika (thamani zisizo sifuri
NAME = “Majaribio ya Kusoma/Kuandika”
pekee; chaguo-msingi = 5).
const unsigned int DEFAULT_READ_WRITE_ATTEMPTS = "5"
const std::string CHANGE_NETWORK_STATE_ATTEMPTS_OPTION_NAME = "Badilisha Majaribio ya Hali ya Mtandao"
Idadi ya juu zaidi ya majaribio ya kubadilisha hali ya mtandao (thamani zisizo za sifuri pekee; chaguo-msingi = 10).
const unsigned int DEFAULT_CHANGE_NETWORK_ STATE_ATTEMPTS = "10"
const std::string PDO_IO_ENABLED_OPTION_NAME Huwasha au kulemaza uchakataji wa PDO kwa dijitali katika- /
= "PDO IO Imewezeshwa"
matokeo ("Kweli" au "Uongo" pekee; chaguo-msingi = "Kweli").
const std::string DEFAULT_PDO_IO_ENABLED = "Kweli"
8.10 Muundo wa EtherCATSstate
Muundo huu una hali ya EtherCAT slave/network kama maadili ya mfuatano katika sifa zifuatazo za umma. Kumbuka: Hali chaguomsingi ya kuwasha ni PRE_OPERATIONAL; NanoLib haiwezi kutoa hali ya "UENDESHAJI" ya kuaminika katika mfumo wa uendeshaji usio wa wakati halisi:
const std::string const std::string const std::string const std::string const std::string const std::string
HAKUNA = "HAKUNA" INIT = "INIT" PRE_OPERATIONAL = "PRE_OPERATIONAL" BOOT = "BOOT" SAFE_OPERATIONAL = "SALAMA_UENDESHAJI" = "UENDESHAJI"
Toleo: hati 1.4.2 / NanoLib 1.3.0
31
8 Madarasa / marejeleo ya kazi
8.11 Ixxat
Muundo huu unashikilia taarifa zote za Ixxat usb-to-can katika sifa zifuatazo za umma:
const std::string
ADAPTER_BUS_NUMBER_OPTIONS_NAME = "nambari ya basi ya adapta ya ixxat"
const IxxatAdapterBusNumber adapterBusNumber = IxxatAdapterBusNumber ()
8.12 IxxatAdapterBusNumber
Muundo huu unashikilia nambari ya basi ya Ixxat usb-to-can katika sifa zifuatazo za umma:
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”
Peak 8.13
Muundo huu unashikilia taarifa zote za Peak usb-to-can katika sifa zifuatazo za umma:
const std::string
ADAPTER_BUS_NUMBER_OPTIONS_NAME = "nambari ya basi ya adapta kuu"
const PeakAdapterBusNumber adapterBusNumber = PeakAdapterBusNumber ()
8.14 PeakAdapterBusNumber
Muundo huu unashikilia nambari ya basi ya Peak usb-to-can katika sifa zifuatazo za umma:
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_US string (PCAN_USBBUS4) BUS_NUMBER_5 = std::to_string (PCAN_USBBUS5) BUS_NUMBER_6 = std::to_US string (PCAN_stB_USB) = 6to BUSD_USB (PCAN_USBBUS7) BUS_NUMBER_7 = std::to_string (PCAN_USBBUS8) BUS_NUMBER_8 = std::to_string (PCAN_USBBUS9) BUS_NUMBER_9 = std::to_string (PCAN_USBBUS10) BUS_NUMBER_10 = std:_USBUS_NUMBER = std::11USB_NUMBER 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_USBBUS string_14) = BUS_ST_15: 15 (PCAN_USBBUS16) BUS_NUMBER_16 = std::to_string (PCAN_USBBUSXNUMX) BUS_NUMBER_XNUMX = std::to_string (PCAN_USBBUSXNUMX)
8.15 DeviceHandle
Darasa hili linawakilisha mpini wa kudhibiti kifaa kwenye basi na lina vitendaji vifuatavyo vya umma.
DeviceHandle () DeviceHandle (uint32_t mpini)
Toleo: hati 1.4.2 / NanoLib 1.3.0
32
8 Madarasa / marejeleo ya kazi
sawa () Inajilinganisha na mpini fulani wa kifaa.
bool sawa (DeviceHandle const other) const (uint32_t mpini)
toString () Hurejesha uwakilishi wa mfuatano wa mpini wa kifaa.
std::string toString () const
get () Hurejesha mpini wa kifaa.
uint32_t get () const
8.16 Kitambulisho cha Kifaa
Tumia darasa hili (si lisiloweza kubadilika kutoka uundaji hadi) kutambua na kutofautisha vifaa kwenye basi:
Kitambulisho cha adapta ya maunzi
Kitambulisho cha kifaa
Maelezo
Maana ya kitambulisho cha kifaa / maadili ya maelezo inategemea basi. Kwa mfanoample, basi la CAN linaweza kutumia nambari kamili ya kitambulisho.
DeviceId () [1/3] Huunda kifaa kipya cha kitambulisho.
nlc::Kitambulisho cha Kifaa::Kitambulisho cha Kifaa (BusHardwareId const & busHardwareId_, kifaa cha ndani ambacho hakijasajiliwaId_, std::string const & description_)
Vigezo busHardwareId_ deviceId_ description_
Kitambulisho cha basi. Kielezo; chini ya basi (= Kitambulisho cha nodi ya CANopen nk.). Maelezo (yanaweza kuwa tupu); chini ya basi.
Kitambulisho cha Kifaa () [2/3] Hutengeneza kifaa kipya cha kitambulisho chenye chaguo za kitambulisho zilizopanuliwa.
nlc::Kitambulisho cha Kifaa::Kitambulisho cha Kifaa (BusHardwareId const & busHardwareId, kifaa cha int ambacho hakijasajiliwaId_, std::string const & description_ std::vekta const & extraId_, std::string const & extraStringId_)
Vigezo busHardwareId_ deviceId_ description_ extraId_ extraStringId_
Kitambulisho cha basi. Kielezo; chini ya basi (= Kitambulisho cha nodi ya CANopen nk.). Maelezo (yanaweza kuwa tupu); chini ya basi. Kitambulisho cha ziada (kinaweza kuwa tupu); maana inategemea basi. Kitambulisho cha kamba ya ziada (inaweza kuwa tupu); maana inategemea basi.
DeviceId () [3/3] Hutengeneza nakala ya kifaa cha kitambulisho.
nlc::DeviceId::DeviceId (DeviceId const &)
Toleo: hati 1.4.2 / NanoLib 1.3.0
33
8 Madarasa / marejeleo ya kazi
Vigezo kifaaId_
Kitambulisho cha Kifaa cha kunakili kutoka.
sawa () Inalinganisha mpya na vitu vilivyopo.
bool nlc::DeviceId::sawa (DeviceId const & nyingine) const
Hurejesha boolean
getBusHardwareId () Husoma kitambulisho cha maunzi ya basi.
BusHardwareId nlc::DeviceId::getBusHardwareId () const
Hurejesha BusHardwareId
getDescription () Inasoma maelezo ya kifaa (labda haijatumika).
std::string nlc::DeviceId::getDescription () const
Hurejesha kamba
getDeviceId () Husoma kitambulisho cha kifaa (labda hakitumiki).
unsigned int nlc::DeviceId::getDeviceId () const
Hurejesha int ambayo haijatiwa saini
toString () Hurejesha kitu kama mfuatano.
std::string nlc::DeviceId::toString () const
Hurejesha kamba
getExtraId () Husoma kitambulisho cha ziada cha kifaa (kinaweza kisitumike).
const std::vekta &getExtraId () const
Hurejesha vekta
Vekta ya vitambulisho vya ziada vya ziada (inaweza kuwa tupu); maana inategemea basi.
getExtraStringId () Husoma kitambulisho cha kamba cha ziada cha kifaa (kinaweza kisitumike).
std::string getExtraStringId () const
Toleo: hati 1.4.2 / NanoLib 1.3.0
34
8 Madarasa / marejeleo ya kazi
Hurejesha kamba
Kitambulisho cha kamba ya ziada (inaweza kuwa tupu); maana inategemea basi.
8.17 LogLevelConverter
Darasa hili linarudisha kiwango chako cha kumbukumbu kama kamba. tuli std::string toString (nlc::LogLevel LogLevel)
8.18 LogModuleConverter
Darasa hili hurejesha kumbukumbu yako ya modulisetLoggingLevel () kama mfuatano.
tuli std::string
toString (nlc::Moduli ya logi ya Log)
tuli std::string toString (nlc::LogModuli ya logiModuli)
8.19 Kamusi ya Kitu
Daraja hili linawakilisha kamusi ya kipengee cha kidhibiti na lina vitendaji vifuatavyo vya wanachama wa umma: getDeviceHandle ()
virtual ResultDeviceHandle getDeviceHandle () const Returns ResultDeviceHandle
getObject () virtual ResultObjectSubEntry getObject (OdIndex const odIndex) Hurejesha ResultObjectSubEntry
getObjectEntry () virtual ResultObjectEntry getObjectEntry (uint16_t index)
Hurejesha ResultObjectEntry
Inafahamisha juu ya sifa za kitu.
pataXmlFileJina () virtual ResultString getXmlFileJina () const
HurejeshaResultString
Hurejesha XML file jina kama kamba.
readNumber () virtual ResultInt readNumber (OdIndex const odIndex) Hurejesha ResultInt
readNumberArray () virtual ResultArrayInt readNumberArray (uint16_t const index)
Toleo: hati 1.4.2 / NanoLib 1.3.0
35
8 Madarasa / marejeleo ya kazi
Hurejesha ResultArrayInt readString ()
virtual ResultString readString (OdIndex const odIndex) Hurejesha ResultString readBytes () virtual ResultArrayByte readBytes (OdIndex const odIndex) Hurejesha ResultArrayByte writeNumber () virtual ResultVoid writeNumber (OdIndex const odInultids_Rejesha_ResultArrayByte) writeBytes () virtual ResultVoid writeBytes (OdIndex const OdIndex, std::vekta
const & data) Hurejesha Viungo Vinavyohusiana vya ResultVoid OdIndex
8.20 ObjectEntry
Daraja hili linawakilisha ingizo la kipengee la kamusi ya kifaa, lina sifa zifuatazo zinazolindwa tuli na kazi za wanachama wa umma:
tuli nlc::ObjectSubEntry invalidObject
getName () Husoma jina la kitu kama mfuatano.
virtual std::string getName () const
getPrivate () Hukagua ikiwa kitu ni cha faragha.
virtual bool getPrivate () const
getIndex () Husoma anwani ya faharasa ya kitu.
virtual uint16_t getIndex () const
Toleo: hati 1.4.2 / NanoLib 1.3.0
36
8 Madarasa / marejeleo ya kazi
getDataType () Husoma aina ya data ya kitu.
virtual nlc::ObjectEntryDataType getDataType () const
getObjectCode () Inasoma msimbo wa kitu:
Rekodi ya Null Defftype Defstruct Var Array
0x00 0x05 0x06 0x07 0x08 0x09
virtual nlc::ObjectCode getObjectCode () const
getObjectSaveable () Hukagua ikiwa kitu kinaweza kuhifadhiwa na ni kategoria (angalia mwongozo wa bidhaa kwa maelezo zaidi): MAOMBI, MAWASILIANO, HIFADHI, MISC_CONFIG, MODBUS_RTU, HAPANA, TUNING, CUSTOMER, ETHERNET, CANOPEN, VERIFY1020, UNKLENOWN_PEA.
virtual nlc::ObjectSaveable getObjectSaveable () const
getMaxSubIndex () Husoma idadi ya vijisehemu vinavyotumika na kitu hiki.
virtual uint8_t getMaxSubIndex () const
getSubEntry () virtual nlc::ObjectSubEntry & getSubEntry (uint8_t subIndex)
Tazama pia ObjectSubEntry.
8.21 ObjectSubEntry
Daraja hili linawakilisha ingizo dogo la kitu (kielezo kidogo) cha kamusi ya kitu na lina kazi zifuatazo za wanachama wa umma:
getName () Husoma jina la kitu kama mfuatano.
virtual std::string getName () const
getSubIndex () Inasoma anwani ya subindex.
virtual uint8_t getSubIndex () const
Toleo: hati 1.4.2 / NanoLib 1.3.0
37
8 Madarasa / marejeleo ya kazi
getDataType () Husoma aina ya data ya kitu.
virtual nlc::ObjectEntryDataType getDataType () const
getSdoAccess () Huangalia ikiwa subindex inapatikana kupitia SDO:
Soma Pekee
1
Andika Pekee
2
SomaAndika
3
NoAccess
0
virtual nlc::ObjectSdoAccessAttribute getSdoAccess () const
getPdoAccess () Huangalia ikiwa subindex inapatikana/inawezekana kupitia PDO:
Tx
1
Rx
2
TxRx
3
Hapana
0
virtual nlc::ObjectPdoAccessAttribute getPdoAccess () const
getBitLength () Hukagua urefu wa subindex.
virtual uint32_t getBitLength () const
getDefaultValueAsNumeric () Husoma thamani chaguo-msingi ya faharasa ndogo ya aina za data za nambari.
virtual ResultInt getDefaultValueAsNumeric (std::string const & key) const
getDefaultValueAsString () Husoma thamani chaguo-msingi ya kielezo kidogo cha aina za data za mfuatano.
virtual ResultString getDefaultValueAsString (std::string const & key) const
getDefaultValues () Husoma maadili chaguomsingi ya subindex.
virtual std::map getDefaultValues () const
Toleo: hati 1.4.2 / NanoLib 1.3.0
38
8 Madarasa / marejeleo ya kazi
readNumber () Husoma thamani halisi ya nambari ya faharasa ndogo.
virtual ResultInt readNumber () const
readString () Husoma kamba thamani halisi ya subindex.
virtual ResultString readString () const
readBytes () Husoma thamani halisi ya subindex katika ka.
virtual ResultArrayByte readBytes () const
AndikaNambari () Huandika thamani ya nambari katika kielezo kidogo.
virtual ResultVoid writeNumber (const int64_t value) const
writeBytes () Huandika thamani katika faharasa ndogo katika baiti.
virtual ResultVoid writeBytes (std::vector const & data) const
8.22 OdIndex
Tumia darasa hili (lisiloweza kubadilika kutoka uundaji na kuendelea) kufunga na kupata fahirisi za saraka ya kitu / fahirisi ndogo. OD ya kifaa ina hadi safu 65535 (0xFFFF) na safu wima 255 (0xFF); na mapengo kati ya safu zisizoendelea. Tazama kiwango cha CANopen na mwongozo wa bidhaa yako kwa maelezo zaidi.
OdIndex () Inaunda kitu kipya cha OdIndex.
nlc::OdIndex::OdIndex (uint16_t index, uint8_t subIndex)
Vigezo index subindex
Kutoka 0 hadi 65535 (0xFFFF) incl. Kutoka 0 hadi 255 (0xFF) incl.
getIndex () Husoma fahirisi (kutoka 0x0000 hadi 0xFFFF).
uint16_t nlc::OdIndex::getIndex () const
Hurejesha uint16_t
getSubindex () Inasoma faharasa ndogo (kutoka 0x00 hadi 0xFF)
uint8_t nlc::OdIndex::getSubIndex () const
Toleo: hati 1.4.2 / NanoLib 1.3.0
39
8 Madarasa / marejeleo ya kazi
Hurejesha uint8_t
toString () Hurejesha faharasa na kielezo kidogo kama mfuatano. Chaguo-msingi la kamba 0xIIII:0xSS inasomeka kama ifuatavyo:
I = index kutoka 0x0000 hadi 0xFFFF
S = index ndogo kutoka 0x00 hadi 0xFF
std::string nlc::OdIndex::toString () const
Hurejesha 0xIII:0xSS
Uwakilishi wa kamba chaguomsingi
8.23 OdLibrary
Tumia kiolesura hiki cha programu kuunda mifano ya darasa la ObjectDictionary kutoka XML. Kwa assignObjectDictionary, basi unaweza kufunga kila mfano kwa kifaa mahususi kutokana na kitambulisho kilichoundwa mahususi. Matukio ya ObjectDictionary yaliyoundwa hivyo huhifadhiwa kwenye kitu cha OdLibrary ili kufikiwa na faharisi. Darasa la ODLibrary hupakia vitu vya ObjectDictionary kutoka file au safu, huzihifadhi, na ina kazi zifuatazo za wanachama wa umma:
getObjectDictionaryCount () virtual uint32_t getObjectDictionaryCount () const
getObjectDictionary () virtual ResultObjectDictionary getObjectDictionary (uint32_t odIndex)
Hurejesha ResultObjectDictionary
addObjectDictionaryFromFile ()
virtual ResultObjectDictionary addObjectDictionaryFromFile (std::string const & absoluteXmlFileNjia)
Hurejesha ResultObjectDictionary
addObjectDictionary ()
virtual ResultObjectDictionary addObjectDictionary (std::vector const & odXmlData, const std::string &xmlFileNjia = std :: kamba ())
Hurejesha ResultObjectDictionary
8.24 OdTypesHelper
Kando na kazi zifuatazo za wanachama wa umma, darasa hili lina aina maalum za data. Kumbuka: Ili kuangalia aina zako maalum za data, tafuta enum class ObjectEntryDataType katika od_types.hpp.
uintToObjectCode () Hubadilisha nambari kamili ambazo hazijatiwa saini kuwa msimbo wa kitu:
Null Deftype
0x00 0x05
Toleo: hati 1.4.2 / NanoLib 1.3.0
40
8 Madarasa / marejeleo ya kazi
Rekodi ya Defstruct Var Array
0x06 0x07 0x08 0x09
Msimbo tuli wa Object uintToObjectCode (Msimbo wa ndani wa kitu ambao haujatiwa saini)
isNumericDataType () Hufahamisha ikiwa aina ya data ni nambari au la.
bool tuli niNumericDataType (ObjectEntryDataType dataType)
isDefstructIndex () Hufahamisha ikiwa kitu ni faharasa ya muundo wa ufafanuzi au la.
bool tuli isDefstructIndex (uint16_t typeNum)
isDeftypeIndex () Hufahamisha ikiwa kitu ni faharasa ya aina ya ufafanuzi au la.
bool tuli isDeftypeIndex (uint16_t typeNum)
isComplexDataType () Hufahamisha ikiwa aina ya data ni changamano au la.
bool tuli isComplexDataType (ObjectEntryDataType dataType)
uintToObjectEntryDataType () Hubadilisha nambari kamili ambazo hazijatiwa saini kuwa aina ya data ya OD.
Sstatic ObjectEntryDataType uintToObjectEntryDataType (uint16_t objectDataType)
objectEntryDataTypeToString () Hubadilisha aina ya data ya OD kuwa kamba.
tuli std::string objectEntryDataTypeToString (ObjectEntryDataType odDataType)
stringToObjectEntryDatatype () Hubadilisha mfuatano kuwa aina ya data ya OD ikiwezekana. Vinginevyo, hurejesha UNKNOWN_DATATYPE.
string ObjectEntryDataType stringToObjectEntryDatatype tuli (std::string dataTypeString)
Toleo: hati 1.4.2 / NanoLib 1.3.0
41
8 Madarasa / marejeleo ya kazi
objectEntryDataTypeBitLength () Hufahamisha kwa urefu kidogo wa aina ya data ya ingizo la kitu.
tuli uint32_t objectEntryDataTypeBitLength (ObjectEntryDataType const & dataType)
8.25 Muundo wa RESTfulBus
Muundo huu una chaguzi za usanidi wa mawasiliano kwa kiolesura cha RESTful (juu ya Ethaneti). Ina sifa zifuatazo za umma:
const std::string const unsigned long std::string const unsigned long std::string const unsigned long
CONNECT_TIMEOUT_OPTION_NAME = “Muda Unaostahimili wa Muunganisho” DEFAULT_CONNECT_TIMEOUT = 200 REQUEST_TIMEOUT_OPTION_NAME = “Muda mwafaka wa Ombi Umekwisha” DEFAULT_REQUEST_TIMEOUT = 200 RESPONSE_TIMEOUT_OPTION_NAME = “Muda wa Kujibu kwa Furaha 750 DEOUTNFAREST_TIMEOUT_SEW DEFAULT_REQUEST_TIMEOUT
8.26 ProfinetDCP
Chini ya Linux, programu ya kupiga simu inahitaji uwezo wa CAP_NET_ADMIN na CAP_NET_RAW. Ili kuwezesha: sudo setcap 'cap_net_admin,cap_net_raw+eip' ./executable. Katika Windows, kiolesura cha ProfinetDCP kinatumia WinPcap (iliyojaribiwa na toleo la 4.1.3) au Npcap (iliyojaribiwa na matoleo 1.60 na 1.30). Kwa hivyo hutafuta maktaba ya wpcap.dll iliyopakiwa kwa nguvu kwa mpangilio ufuatao (Kumbuka: hakuna usaidizi wa Win10Pcap wa sasa):
1. Saraka ya Nanolib.dll 2. Saraka ya mfumo wa Windows SystemRoot%System32 3. Saraka ya usakinishaji ya Npcap SystemRoot%System32Npcap 4. Njia ya mazingira
Darasa hili linawakilisha kiolesura cha Profinet DCP na lina kazi zifuatazo za wanachama wa umma:
getScanTimeout () Inafahamisha kwenye muda wa kuchanganua kifaa (chaguo-msingi = 2000 ms).
virtual uint32_t nlc::ProfinetDCP::getScanTimeout () const
setScanTimeout () Inaweka muda wa kuisha kwa uchunguzi wa kifaa (chaguo-msingi = 2000 ms).
utupu halisi nlc::setScanTimeout (uint32_t timeoutMsec)
getResponseTimeout () Hufahamisha muda wa kujibu wa kifaa kwa ajili ya kusanidi, kuweka upya na kupepesa (chaguo-msingi = 1000 ms).
virtual uint32_t nlc::ProfinetDCP::getResponseTimeout () const
setResponseTimeout () Hufahamisha muda wa kujibu wa kifaa kwa ajili ya kusanidi, kuweka upya na kupepesa (chaguo-msingi = 1000 ms).
virtual void nlc::ProfinetDCP::setResponseTimeout (uint32_t timeoutMsec)
Toleo: hati 1.4.2 / NanoLib 1.3.0
42
8 Madarasa / marejeleo ya kazi
isServiceAvailable ()
Tumia kipengele hiki kuangalia upatikanaji wa huduma ya Profinet DCP.
Uhalali wa adapta ya mtandao / upatikanaji Windows: WinPcap / Npcap upatikanaji Linux: CAP_NET_ADMIN / CAP_NET_RAW uwezo
virtual ResultVoid nlc::ProfinetDCP::isServiceInapatikana (const BusHardwareId & busHardwareId)
Vigezo BusHardwareId Hurejesha kweli
uongo
Kitambulisho cha maunzi cha huduma ya Profinet DCP cha kuangalia. Huduma inapatikana. Huduma haipatikani.
scanProfinetDevices () Tumia chaguo hili la kukokotoa kuchanganua basi ya maunzi kwa uwepo wa vifaa vya Profinet.
virtual ResultProfinetDevices scanProfinetDevices (const BusHardwareId & busHardwareId)
Vigezo BusHardwareId Hurejesha ResultProfinetDevices
Inabainisha kila basi la shambani la kufunguliwa. Vifaa vimefunguliwa.
setupProfinetDevice () Inaanzisha mipangilio ya kifaa ifuatayo:
Jina la kifaa
Anwani ya IP
Mask ya mtandao
Lango chaguomsingi
virtual ResultVoid nlc::setupProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice muundo & profinetDevice, bool savePermanent)
resetProfinetDevice () Husimamisha kifaa na kukirejesha kwa chaguomsingi za kiwanda.
virtual ResultVoid nlc::resetProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice & profinetDevice)
blinkProfinetDevice () Huamuru kifaa cha Profinet kuanza kupepesa LED yake ya Profinet.
virtual ResultVoid nlc::blinkProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice &profinetDevice)
validateProfinetDeviceIp () Tumia chaguo hili kuangalia anwani ya IP ya kifaa.
virtual ResultVoid validateProfinetDeviceIp (const BusHardwareId &busHardwareId, const ProfinetDevice & profinetDevice)
Vigezo BusHardwareId ProfinetDevice
Hubainisha kitambulisho cha maunzi cha kukagua. Inabainisha kifaa cha Profinet cha kuhalalisha.
Toleo: hati 1.4.2 / NanoLib 1.3.0
43
8 Madarasa / marejeleo ya kazi
Hurejesha ResultVoid
8.27 Muundo wa Kifaa cha Profinet
Data ya kifaa cha Profinet ina sifa zifuatazo za umma:
std::string std::string std::array< uint8_t, 6 > uint32_t uint32_t uint32_t
deviceName deviceVendor macAddress ipAddress netMask defaultGateway
Anwani ya MAC imetolewa kama safu katika umbizo la macAddress = {xx, xx, xx, xx, xx, xx}; ilhali anwani ya IP, barakoa ya mtandao na lango zote zinafasiriwa kama nambari kubwa za hex za endian, kama vile:
Anwani ya IP: 192.168.0.2 Kinyago cha mtandao: 255.255.0.0 Lango: 192.168.0.1
0xC0A80002 0xFFFF0000 0xC0A80001
8.28 Madarasa ya matokeo
Tumia thamani za urejeshaji za "si lazima" za madarasa haya ili kuangalia kama simu ya kukokotoa ilifaulu au la, na pia kutafuta sababu za kutofaulu. Kwenye mafanikio, kazi ya hasError () inarudi kuwa ya uwongo. Kwa getResult (), unaweza kusoma thamani ya matokeo kulingana na aina (ResultInt nk). Ikiwa simu itashindwa, unasoma sababu kwa GetError ().
Sifa zinazolindwa
kamba NlcErrorCode uint32_t
errorString errorCode exErrorCode
Pia, darasa hili lina kazi zifuatazo za wanachama wa umma:
hasError () Husoma mafanikio ya simu ya kukokotoa.
bool nlc::Result::hasError () const
Inarudi
kweli uongo
Simu iliyoshindikana. Tumia getError () kusoma thamani. Simu iliyofaulu. Tumia getResult () kusoma thamani.
getError () Husoma sababu ikiwa simu ya utendaji itashindwa.
const std::string nlc::Matokeo::getError () const
Hurejesha mfuatano wa const
Toleo: hati 1.4.2 / NanoLib 1.3.0
44
8 Madarasa / marejeleo ya kazi
matokeo () Vitendo vifuatavyo husaidia katika kufafanua matokeo halisi:
Matokeo (std::string const & errorString_)
Matokeo (NlcErrorCode const & errCode, std::string const & errorString_)
Matokeo (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
Matokeo (Matokeo na matokeo)
getErrorCode () Soma NlcErrorCode.
NlcErrorCode getErrorCode () const
getExErrorCode () uint32_t getExErrorCode () const
8.28.1 MatokeoUtupu
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa zitarudi batili. Darasa hurithi kazi za umma na sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
ResultVoid () Vitendaji vifuatavyo husaidia katika kufafanua matokeo kamili ya utupu:
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 (Matokeo const & matokeo)
8.28.2 Matokeo
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa zitaleta nambari kamili. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
getResult () Hurejesha matokeo kamili ikiwa simu ya kukokotoa ilifaulu.
int64_t getResult () const
Hurejesha int64_t
Toleo: hati 1.4.2 / NanoLib 1.3.0
45
8 Madarasa / marejeleo ya kazi
ResultInt () Vitendaji vifuatavyo husaidia katika kufafanua matokeo kamili kamili:
ResultInt (matokeo ya in64_t_)
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 (Matokeo Const & matokeo)
8.28.3 Msururu wa Matokeo
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo la kukokotoa litarudisha mfuatano. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
getResult () Husoma matokeo ya kamba ikiwa simu ya kukokotoa ilifaulu.
const std::string nlc::ResultString::getResult () const
Hurejesha mfuatano wa const
ResultString () Vitendaji vifuatavyo husaidia katika kufafanua matokeo halisi ya kamba:
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 (Matokeo const & matokeo)
8.28.4 ResultArrayByte
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa hurejesha safu ya baiti. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
getResult () Husoma vekta ya baiti ikiwa simu ya utendaji ilifaulu.
const std::vekta nlc::ResultArrayByte::getResult () const
Hurejesha const vector
Toleo: hati 1.4.2 / NanoLib 1.3.0
46
8 Madarasa / marejeleo ya kazi
ResultArrayByte () Vitendo vifuatavyo husaidia katika kufafanua matokeo halisi ya safu:
ResultArrayByte (std::vector const & matokeo_)
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 (Matokeo const & matokeo)
8.28.5 ResultArrayInt
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa hurejesha safu kamili. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
getResult () Husoma vekta kamili ikiwa simu ya kukokotoa ilifaulu.
const std::vekta nlc::ResultArrayInt::getResult () const
Hurejesha const vector
ResultArrayInt () Vitendo vifuatavyo husaidia katika kufafanua matokeo kamili ya safu kamili:
ResultArrayInt (std::vector const & matokeo_)
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 (Matokeo const & matokeo)
8.28.6 MatokeoBusHwIds
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa zitarejesha safu ya kitambulisho cha maunzi ya basi. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
getResult () Husoma vekta ya basi-vifaa-kitambulisho ikiwa simu ya utendaji ilifaulu.
const std::vekta nlc::ResultBusHwIds::getResult () const
Vigezo const vector
Toleo: hati 1.4.2 / NanoLib 1.3.0
47
8 Madarasa / marejeleo ya kazi
ResultBusHwIds () Vitendo vifuatavyo husaidia katika kufafanua matokeo halisi ya mkusanyiko wa kitambulisho cha basi:
ResultBusHwIds (std::vector const & matokeo_)
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 (Matokeo const & matokeo)
8.28.7 ResultDeviceId
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa zitaleta kitambulisho cha kifaa. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
getResult () Husoma vekta ya kitambulisho cha kifaa ikiwa simu ya kukokotoa ilifaulu.
DeviceId nlc::ResultDeviceId::getResult () const
Hurejesha const vector
ResultDeviceId () Vitendaji vifuatavyo husaidia kufafanua matokeo kamili ya kitambulisho cha kifaa:
ResultDeviceId (DeviceId const & result_)
ResultDeviceId (std::string const & errorString_)
ResultDeviceId (NlcErrorCode const & errCode, std::string const & errorString_)
ResultDeviceId (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string errorString_)
ResultDeviceId (Matokeo ya thamani na matokeo)
8.28.8 ResultDeviceIds
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa zitaleta safu ya kitambulisho cha kifaa. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
getResult () Hurejesha vekta ya Kitambulisho cha kifaa ikiwa simu ya kukokotoa ilifaulu.
DeviceId nlc::ResultDeviceIds::getResult () const
Hurejesha const vector
Toleo: hati 1.4.2 / NanoLib 1.3.0
48
8 Madarasa / marejeleo ya kazi
ResultDeviceIds () Vitendakazi vifuatavyo husaidia kufafanua matokeo kamili ya safu ya kitambulisho cha kifaa:
ResultDeviceIds (std::vector const & matokeo_)
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_)
Vitambulisho vya ResultDevice (Matokeo na matokeo)
8.28.9 ResultDeviceHandle
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa zitarejesha thamani ya mpini wa kifaa. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
getResult () Husoma kipinishi cha kifaa ikiwa simu ya kukokotoa ilifaulu.
DeviceHandle nlc::ResultDeviceHandle::getResult () const
Hurejesha DeviceHandle
ResultDeviceHandle () Vitendo vifuatavyo husaidia kufafanua matokeo kamili ya kishikio cha kifaa:
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 (Matokeo ya gharama na matokeo)
8.28.10 ResultObjectKamusi
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa zitarejesha maudhui ya kamusi ya kitu. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
getResult () Husoma vekta ya kitambulisho cha kifaa ikiwa simu ya kukokotoa ilifaulu.
const nlc::ObjectDictionary & nlc::ResultObjectKamusi::getResult () const
Toleo: hati 1.4.2 / NanoLib 1.3.0
49
8 Madarasa / marejeleo ya kazi
Inarudi
const vector
ResultObjectDictionary () Vitendo vifuatavyo husaidia katika kufafanua matokeo kamili ya kamusi ya kitu:
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 (Matokeo const & matokeo)
8.28.11ResultConnectionState
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa zitaleta maelezo ya hali ya muunganisho wa kifaa. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
getResult () Husoma kipinishi cha kifaa ikiwa simu ya kukokotoa ilifaulu.
DeviceConnectionStateInfo nlc::ResultConnectionState::getResult () const
Hurejesha DeviceConnectionStateInfo Imeunganishwa / Imetenganishwa / ConnectedBooloader
ResultConnectionState () Vitendaji vifuatavyo husaidia katika kufafanua matokeo halisi ya hali ya muunganisho:
ResultConnectionState (DeviceConnectionStateInfo const & result_)
ResultConnectionState (std::string const & errorString_)
ResultConnectionState (NlcErrorCode const & errCode, std::string const & errorString_)
ResultConnectionState (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultConnectionState (Matokeo ya gharama na matokeo)
8.28.12 ResultObjectEntry
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa hurejesha ingizo la kitu. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
Toleo: hati 1.4.2 / NanoLib 1.3.0
50
8 Madarasa / marejeleo ya kazi
getResult () Hurejesha vekta ya Kitambulisho cha kifaa ikiwa simu ya kukokotoa ilifaulu.
nlc::ObjectEntry const& nlc::ResultObjectEntry::getResult () const
Hurejesha const ObjectEntry
ResultObjectEntry () Kazi zifuatazo husaidia katika kufafanua matokeo halisi ya ingizo la kitu:
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 (Matokeo const & matokeo)
8.28.13 ResultObjectSubEntry
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa hurejesha ingizo ndogo la kitu. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
getResult () Hurejesha vekta ya Kitambulisho cha kifaa ikiwa simu ya kukokotoa ilifaulu.
nlc::ObjectSubEntry const & nlc::ResultObjectSubEntry::getResult () const
Hurejesha const ObjectSubEntry
ResultObjectSubEntry () Vitendaji vifuatavyo husaidia katika kufafanua matokeo kamili ya ingizo ndogo la kitu:
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 (Matokeo const & matokeo)
8.28.14 ResultProfinetDevices
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo za kukokotoa hurejesha kifaa cha Profinet. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
Toleo: hati 1.4.2 / NanoLib 1.3.0
51
8 Madarasa / marejeleo ya kazi
getResult () Husoma vekta ya kifaa cha Profinet ikiwa simu ya kukokotoa ilifaulu.
const std::vekta & getResult () const
ResultProfinetDevices () Vitendaji vifuatavyo husaidia katika kufafanua vifaa haswa vya Profinet.
ResultProfinetDevices (const std::vector &ProfinetDevices)
ResultProfinetDevices (matokeo ya mara kwa mara na matokeo)
ResultProfinetDevices (consst std::string &errorText, NlcErrorCode errorCode = NlcErrorCode::GeneralError, uint32_t extendedErrorCode = 0)
8.28.15 MatokeoampleDataArray
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo la kukokotoa litarudi kamaampsafu ya data. Darasa hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina kazi zifuatazo za wanachama wa umma:
getResult () Husoma safu ya data ikiwa simu ya kukokotoa ilifaulu.
const std::vekta <SampleData> & getResult () const
MatokeoampleDataArray () Vitendo vifuatavyo husaidia katika kufafanua vifaa haswa vya Faida.
MatokeoampleDataArray (const std::vector <SampleData> & dataArray)
MatokeoampleDataArray (const std::string &errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t extendedErrorCode = 0)
MatokeoampleDataArray (const ResultSampleDataArray na zingine)
MatokeoampleDataArray (matokeo ya mara kwa mara na matokeo)
8.28.16 MatokeoampJimbo la ler
NanoLib hukutumia mfano wa darasa hili ikiwa chaguo la kukokotoa litarudi kamaampler state. Daraja hili hurithi kazi za umma / sifa zinazolindwa kutoka kwa darasa la matokeo na lina utendakazi zifuatazo za wanachama wa umma:
getResult () Husoma sampler state vector ikiwa simu ya kukokotoa ilifaulu.
SamplerState getResult () const
Inarudisha SampJimbo>
Haijasanidiwa / Imesanidiwa / Tayari / Inaendesha / Imekamilishwa / Imeshindwa / Imeghairiwa
Toleo: hati 1.4.2 / NanoLib 1.3.0
52
8 Madarasa / marejeleo ya kazi
MatokeoamplerState () Vitendo vifuatavyo husaidia katika kufafanua sampjimbo ler.
MatokeoamplerState (const Sampjimbo la lerState)
MatokeoamplerState (consst std::string & errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t
extendedErrorCode = 0)
MatokeoamplerState (const ResultSampJimbo na zingine)
MatokeoamplerState (matokeo ya mara kwa mara na matokeo)
8.29 NlcErrorCode
Hitilafu ikitokea, madarasa ya matokeo huripoti mojawapo ya misimbo ya makosa iliyoorodheshwa katika hesabu hii.
Msimbo wa hitilafu Ufanisi wa JumlaError BusUnavaible CommunicationError ProtocolError
ODDoesHazipo ODIBatiliKufikia ODTypeOperesheni IsiyolinganaUendeshaji UmesitishwaHauhimiliwi Uendeshaji Batili
Hoja Batili Rasilimali Iliyokataliwa ya KufikiaHaijapatikanaNyenzo-rejeaHaipatikani Kosa la OutOfMemory TimeOutError
C: Kitengo D: Maelezo R: Sababu C: Hakuna. D: Hakuna kosa. R: Operesheni imekamilika kwa mafanikio.
C: Haijabainishwa. D: Hitilafu isiyojulikana. R: Kushindwa kutolingana na kategoria nyingine.
C: Basi. D: Basi la vifaa vya ujenzi halipatikani. R: Basi haipo, imekatika au hitilafu.
C: Mawasiliano. D: Mawasiliano si ya kuaminika. R: Data isiyotarajiwa, CRC isiyo sahihi, hitilafu za fremu au usawa, n.k.
C: Itifaki. D: Hitilafu ya itifaki. R: Jibu baada ya chaguo la itifaki lisilotumika, ripoti ya itifaki isiyotumika ya kifaa, hitilafu katika itifaki (sema, usawazishaji wa sehemu ya SDO), n.k. R: Jibu au ripoti ya kifaa kwa itifaki isiyotumika (chaguo) au kwa hitilafu katika itifaki (sema, SDO biti ya kusawazisha sehemu), n.k. R: Itifaki isiyotumika (chaguo) au hitilafu katika itifaki (sema, sehemu ya SDO ya usawazishaji biti), n.k.
C: Kamusi ya kitu. D: Anwani ya OD haipo. R: Hakuna anwani kama hiyo katika kamusi ya kitu.
C: Kamusi ya kitu. D: Ufikiaji wa anwani ya OD ni batili. R: Jaribio la kuandika kusoma pekee, au kusoma kutoka kwa anwani ya maandishi pekee.
C: Kamusi ya kitu. D: Chapa kutolingana. R: Thamani haijabadilishwa kuwa aina maalum, tuseme, katika jaribio la kutibu mfuatano kama nambari.
C: Maombi. D: Mchakato umesitishwa. R: Mchakato uliokatwa na ombi la maombi. Hurejesha tu wakati wa operesheni, ukikatizwa na chaguo la kurudisha simu, tuseme, kutoka kwa skanning ya basi.
C: Kawaida. D: Mchakato hautumiki. R: Hakuna usaidizi wa basi / kifaa.
C: Kawaida. D: Mchakato si sahihi katika muktadha wa sasa, au batili na hoja ya sasa. R: Jaribio la kuunganisha upya mabasi/vifaa vilivyounganishwa tayari. Jaribio la kukata muunganisho kwa zile ambazo tayari zimekatika. Jaribio la uendeshaji wa bootloader katika hali ya firmware au kinyume chake.
C: Kawaida. D: Hoja ni batili. R: Mantiki au sintaksia isiyo sahihi.
C: Kawaida. D: Ufikiaji umekataliwa. R: Ukosefu wa haki au uwezo wa kufanya operesheni iliyoombwa.
C: Kawaida. D: Kipengee kilichoainishwa hakijapatikana. R: Basi ya vifaa, itifaki, kifaa, anwani ya OD kwenye kifaa, au file haikupatikana.
C: Kawaida. D: Kipengee kilichoainishwa hakijapatikana. R: ina shughuli nyingi, haipo, imekatwa au kasoro.
C: Kawaida. D: Kumbukumbu haitoshi. R: Kumbukumbu ndogo sana kuchakata amri hii.
C: Kawaida. D: Mchakato umekwisha. R: Rudisha baada ya muda kuisha. Muda umekwisha inaweza kuwa wakati wa majibu ya kifaa, wakati wa kupata ufikiaji wa rasilimali unaoshirikiwa au wa kipekee, au wakati wa kubadilisha basi / kifaa hadi hali inayofaa.
Toleo: hati 1.4.2 / NanoLib 1.3.0
53
8 Madarasa / marejeleo ya kazi
8.30 NlcCallback
Darasa hili la mzazi la wapiga simu lina kipengele kifuatacho cha mwanachama wa umma: callback ()
upigaji simu wa ResultVoid pepe ()
Inarudi
MatokeoUtupu
8.31 NlcDataTransferCallback
Tumia darasa hili la kupiga simu kwa uhamishaji wa data (sasisho la programu, upakiaji wa NanoJ n.k.). 1. Kwa upakiaji wa programu dhibiti: Bainisha "darasa mwenza" inayopanua hii kwa mbinu maalum ya kupiga tena simu
utekelezaji. 2. Tumia matukio ya "co-class" katika simu za NanoLibAccessor.uploadFirmware (). Darasa kuu lenyewe lina kazi ifuatayo ya wanachama wa umma:
callback () virtual ResultVoid callback (nlc::DataTransferInfo info, int32_t data)
Inarudi
MatokeoUtupu
8.32 NlcScanBusCallback
Tumia darasa hili la kupiga simu kwa kuchanganua basi. 1. Bainisha "darasa mwenza" inayopanua hii kwa utekelezaji wa mbinu maalum ya kurudi nyuma. 2. Tumia matukio ya "co-class" katika simu za NanoLibAccessor.scanDevices (). Darasa kuu lenyewe lina kazi ifuatayo ya wanachama wa umma.
nipigie ()
virtual ResultVoid callback (nlc::BusScanInfo info, std::vekta const & equipmentFound, data int32_t)
Hurejesha ResultVoid
8.33 NlcLoggingCallback
Tumia darasa hili la urejeshaji simu kwa kukata nambari za simu. 1. Bainisha darasa linalopanua darasa hili kwa utekelezaji wa mbinu maalum ya kupiga simu 2. Tumia kielekezi kwa matukio yake ili kuweka urejeshaji simu na NanoLibAccessor >
setLoggingCallback (…).
urejeshaji utupu wa kawaida (const std::string & payload_str, const std::string & formatted_str, const std::string & logger_name, const unsigned int log_level, const std::uint64_t time_since_epoch, const size_t thread_id)
8.34 SamplerInterface
Tumia darasa hili kusanidi, kuanza na kusimamisha sampler, au kupata sampkuongozwa data na kuchota kamaamphali ya ler au kosa la mwisho. Darasa lina kazi zifuatazo za wanachama wa umma.
Toleo: hati 1.4.2 / NanoLib 1.3.0
54
8 Madarasa / marejeleo ya kazi
sanidi () Inasanidi kamaampler.
virtual ResultVoid nlc::SamplerInterface::configure (consst DeviceHandle deviceHandle, const SamplerConfiguration & samplerConfiguration)
Vigezo [katika] deviceHandle [in] samplerConfiguration
Hurejesha ResultVoid
Hubainisha ni kifaa gani cha kusanidi sampler kwa. Hubainisha thamani za sifa za usanidi. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
getData () Inapata sampdata iliyoongozwa.
matokeo ya mtandaoniampleDataArray nlc::SamplerInterface::getData (consst DeviceHandle deviceHandle)
Vigezo [katika] deviceHandle Hurejesha MatokeoampleDataArray
Hubainisha ni kifaa gani cha kupata data.
Inatoa sampled data, ambayo inaweza kuwa safu tupu ikiwa samplerNotify inatumika inapoanza.
getLastError () Inapata kamaampkosa la mwisho.
virtual ResultVoid nlc::SamplerInterface::getLastError (consst DeviceHandle deviceHandle)
Hurejesha ResultVoid
Inathibitisha kuwa kitendakazi batili kimeendeshwa.
getState () Inapata kamaamphadhi ya ler.
matokeo ya mtandaoniamplerState nlc::SamplerInterface::getState (consst DeviceHandle deviceHandle)
Hurejesha MatokeoampJimbo la ler
Inatoa sampjimbo ler.
anza () Huanza kamaampler.
virtual ResultVoid nlc::SamplerInterface::anza (consst DeviceHandle deviceHandle, SamplerNotify* kifamplerNotify, int64_t applicationData)
Vigezo [katika] kifaaHandle [katika] SamplerNotify [in] applicationData
Hurejesha ResultVoid
Hubainisha ni kifaa gani cha kuanzisha sampler kwa.
Inabainisha ni maelezo gani ya hiari ya kuripoti (yanaweza kuwa nullptr).
Chaguo: Kusambaza data inayohusiana na programu (safu iliyofafanuliwa ya 8-bit ya thamani / Kitambulisho cha kifaa / faharisi, au muda wa tarehe, kielekezi cha kigezo / kitendakazi, n.k.) hadi s.amplerNotify.
Inathibitisha kuwa kitendakazi batili kimeendeshwa.
Toleo: hati 1.4.2 / NanoLib 1.3.0
55
8 Madarasa / marejeleo ya kazi
kuacha () Acha kamaampler.
virtual ResultVoid nlc::SamplerInterface:: stop (consst DeviceHandle deviceHandle)
Vigezo [katika] deviceHandle Returns ResultVoid
Hubainisha ni kifaa gani cha kusimamisha sampler kwa. Inathibitisha kuwa kitendakazi batili kimeendeshwa.
8.35 SampMuundo wa usanidi wa ler
Muundo huu una data sampchaguzi za usanidi wa ler (tuli au la).
Sifa za umma
std::vekta Anwani zilizofuatiliwa
Hadi anwani 12 za OD kuwa sampkuongozwa.
uint32_t
toleo
Toleo la muundo.
uint32_t
mudaMilisekunde
Sampmuda wa ms, kutoka 1 hadi 65535
uint16_t
kipindiMilisekunde
Sampkipindi cha ms.
uint16_t
nambariYaSampchini
Sampkiasi kidogo.
uint16_t
preTriggerNumberOfSampchini
Sampkiasi kidogo cha vichochezi.
bool
kutumiaSoftwareUtekelezaji
Tumia utekelezaji wa programu.
bool
kutumiaNewFWSamplerUtekelezaji Tumia utekelezaji wa FW kwa vifaa vilivyo na a
Toleo la FW v24xx au jipya zaidi.
SamplerMode
hali
Kawaida, kurudiwa au kuendelea sampling.
SamplerTriggerCondition triggerCondition
Masharti ya kuanza: TC_FALSE = 0x00 TC_TRUE = 0x01 TC_SET = 0x10 TC_CLEAR = 0x11 TC_RISING_EDGE = 0x12 TC_FALLING_EDGE = 0x13 TC_BIT_TOGGLE = 0x14 = 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_MULTIx_EDGE, trigger = 0x1B TC_MULTIx_EDGE
SamplerTrigger
SamplerTrigger
Kichochezi cha kuanza kamaampler?
Sifa tuli za umma
tuli constexpr size_t SAMPLER_CONFIGURATION_VERSION = 0x01000000 tuli constexpr size_t MAX_TRACKED_ADDRESSES = 12
8.36 SamplerNotify
Tumia darasa hili kuamilisha samparifa unapoanza kamaampler. Darasa lina shughuli zifuatazo za wanachama wa umma.
Toleo: hati 1.4.2 / NanoLib 1.3.0
56
8 Madarasa / marejeleo ya kazi
arifu ()
Inatoa ingizo la arifa.
utupu halisi nlc::SamplerNotify::arifu (consst ResultVoid & lastError, const SampJimbo la leramplerState, const std::vekta <SampleData> & sampleDatas, int64_t applicationData)
Vigezo [katika] lastError [katika] sampJimbo la ler
[katika] sampleDatas [katika] applicationData
Inaripoti hitilafu ya mwisho ilitokea wakati sampling. Inaripoti samphali ya wakati wa arifa: Haijasanidiwa / Imesanidiwa / Tayari / Inaendesha / Imekamilishwa / Imeshindwa / Imeghairiwa. Inaripoti sampsafu ya data iliyoongozwa. Inaripoti data mahususi ya programu.
8.37 Sampmuundo wa leData
Muundo huu una sampdata iliyoongozwa.
uin64_t iterationNumber
Huanzia 0 na huongezeka tu katika hali ya kujirudia.
std::vekta<SampledValues> Ina safu ya sampmaadili yaliyoongozwa.
8.38 Sampmuundo wa ledValue
Muundo huu una sampmaadili yaliyoongozwa.
in64_t thamani uin64_t CollectTimeMsec
Ina thamani ya anwani ya OD inayofuatiliwa.
Ina muda wa kukusanya katika milisekunde, ikilinganishwa na sampna mwanzo.
8.39 Sampmuundo wa lerTrigger
Muundo huu una mipangilio ya kichochezi cha sampler.
Samphali ya lerTriggerCondition
OdIndex uin32_t thamani
Hali ya kianzishaji:TC_FALSE = 0x00 TC_TRUE = 0x01 TC_SET = 0x10 TC_CLEAR = 0x11 TC_RISING_EDGE = 0x12 TC_FALLING_EDGE = 0x13 TC_BIT_TOGGLE = 0xG14 TC_0 = 15x0 TC_GREATER_OR_EQUAL = 16x0 TC_LESS = 17x0 TC_LESS_OR_EQUAL = 18x0 TC_EQUAL = 19x0 TC_NOT_EQUAL = 1x0A TC_ONE_EDGE = 1x0B TC_MULTIx_EDGE =
OdIndex ya trigger (anwani).
Thamani ya hali au nambari kidogo (kuanzia sifuri kidogo).
8.40 Muundo wa mfululizo
Pata hapa chaguo zako za mawasiliano ya mfululizo na sifa zifuatazo za umma:
const std::string const SerialBaudRate
BAUD_RATE_OPTIONS_NAME = "kiwango cha ubovu mfululizo" baudRate =Muundo waSerialBaudRate
Toleo: hati 1.4.2 / NanoLib 1.3.0
57
8 Madarasa / marejeleo ya kazi
const std::string const SerialParity
PARITY_OPTIONS_NAME = "usawa wa mfululizo" = muundo wa SerialParity
8.41 Muundo wa SerialBaudRate
Pata hapa kiwango chako cha upotevu wa mawasiliano mfululizo na sifa zifuatazo za umma:
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
BAUD_RATE_7200 = “7200” BAUD_RATE_9600 = “9600” BAUD_RATE_14400 = “14400” BAUD_RATE_19200 = “19200” BAUD_RATE_38400 = “38400” BAUD56000 BAUD_56000 =57600 BAUD_57600 115200” BAUD_RATE_115200 = “128000” BAUD_RATE_128000 = “256000” BAUD_RATE_256000 = “XNUMX”
8.42 Muundo wa SerialParity
Pata hapa chaguo zako za usawa wa mfululizo na sifa zifuatazo za umma:
const std::string const std::string const std::string const std::string const std::string
HAKUNA = "hakuna" ODD = "isiyo ya kawaida" HATA = "hata" ALAMA = "alama" NAFASI = "nafasi"
Toleo: hati 1.4.2 / NanoLib 1.3.0
58
9 Leseni
9 Leseni
Vichwa vya kiolesura cha NanoLib API na zamaniampmsimbo wa chanzo umeidhinishwa na Nanotec Electronic GmbH & Co. KG chini ya Leseni ya Creative Commons Attribution 3.0 Unported License (CC BY). Sehemu za maktaba zinazotolewa katika umbizo la binary (msingi na maktaba ya mawasiliano ya fieldbus) zimeidhinishwa chini ya Leseni ya Kimataifa ya Creative Commons AttributionNoDerivatives 4.0 (CC BY ND).
Creative Commons
Muhtasari ufuatao unaoweza kusomeka na binadamu hautabadilisha leseni yenyewe. Unaweza kupata leseni husika katika creativecommons.org na kuunganishwa hapa chini. Uko huru kwa:
CC KWA 3.0
Shiriki: Angalia kulia. Adapt: Changanya tena, badilisha, na ujenge juu ya
nyenzo kwa madhumuni yoyote, hata kibiashara.
CC BY-ND 4.0
Shiriki: Nakili na usambaze upya nyenzo kwa njia au umbizo lolote.
Mtoa leseni hawezi kubatilisha uhuru ulio hapo juu mradi tu unatii masharti yafuatayo ya leseni:
CC KWA 3.0
CC BY-ND 4.0
Sifa: Lazima utoe salio linalofaa, Sifa: Tazama kushoto. Lakini: Toa kiunga cha hii
toa kiunga cha leseni, na uonyeshe ikiwa
leseni nyingine.
mabadiliko yalifanyika. Unaweza kufanya hivyo katika yoyote
Hakuna derivatives: Ukichanganya, kubadilisha, au kujenga
kwa busara, lakini sio kwa njia yoyote inayopendekeza
juu ya nyenzo, huwezi kusambaza
inathibitisha kwamba mtoa leseni anaidhinisha wewe au matumizi yako.
nyenzo iliyobadilishwa.
Hakuna vizuizi vya ziada: Huwezi kutumia Hakuna vikwazo vya ziada: Angalia kushoto. masharti ya kisheria au hatua za kiteknolojia ambazo kisheria
kuzuia wengine kufanya chochote leseni
vibali.
Kumbuka: Si lazima kutii leseni ya vipengele vya nyenzo katika kikoa cha umma au ambapo matumizi yako yanaruhusiwa na ubaguzi au kizuizi kinachotumika.
Kumbuka: Hakuna dhamana iliyotolewa. Leseni inaweza isikupe ruhusa zote zinazohitajika kwa matumizi yako yaliyokusudiwa. Kwa mfanoampna, haki zingine kama vile utangazaji, faragha, au haki za maadili zinaweza kuzuia jinsi unavyotumia nyenzo.
Toleo: hati 1.4.2 / NanoLib 1.3.0
59
Chapa, mawasiliano, matoleo
©2024 Nanotec Electronic GmbH & Co.KGKapellenstr.685622 FeldkirchenGermanyTel.+49(0) 89 900 686-0Fax+49(0)89 900 686-50 info@nanotec.dewww.nanotec.com Haki zote zimehifadhiwa. Hitilafu, upungufu, kiufundi au mabadiliko ya maudhui yanawezekana bila taarifa. Bidhaa/bidhaa zilizonukuliwa ni alama za biashara za wamiliki wao na zinapaswa kushughulikiwa hivyo. Toleo la asili.
Hati 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
+ Imeongezwa > Imebadilishwa # Zisizohamishika > Fanya upya kazi ya zamani iliyotolewaampchini.
+ NanoLib Modbus: Utaratibu wa kufunga kifaa ulioongezwa kwa Modbus VCP. # NanoLib Core: Angalia hali ya unganisho isiyohamishika. # NanoLib Code: Uondoaji wa kumbukumbu ya maunzi ya basi iliyorekebishwa.
+ NanoLib-CANopen: Msaada kwa Adapta ya Peak PCAN-USB (IPEH-002021/002022).
> NanoLib Core: Kiolesura cha urejeshaji simu kilichobadilishwa cha ukataji miti (LogLevel imebadilishwa na LogModule). # NanoLib Logger: Mgawanyiko kati ya msingi na moduli umesahihishwa. # Modbus TCP: Sasisho la firmware lisilohamishika la FW4. # EtherCAT: Upakiaji wa programu isiyohamishika ya NanoJ ya Core5. # EtherCAT: Sasisho la firmware isiyohamishika ya Core5.
# Modbus RTU: Maswala ya muda yaliyorekebishwa na viwango vya chini vya baud wakati wa sasisho la programu. # RESTful: Upakiaji wa mpango wa NanoJ uliowekwa.
# NanoLib Moduli Sampler: Usomaji sahihi wa sampiliongoza maadili ya boolean.
+ Msaada wa Java 11 kwa majukwaa yote. + Msaada wa Python 3.11/3.12 kwa majukwaa yote. + Kiolesura kipya cha kurudisha nyuma ukataji miti (tazama mfanoampchini). + Sinki za kupiga simu kwa NanoLib Logger. > Sasisha kiweka kumbukumbu hadi toleo la 1.12.0. > Moduli za NanoLib Sampler: Msaada sasa kwa firmware ya kidhibiti cha Nanotec v24xx. > Moduli za NanoLib Sampler: Mabadiliko katika muundo unaotumika kwa sampusanidi wa ler. > Moduli za NanoLib Sampler: Hali inayoendelea ni sawa na kutokuwa na mwisho; hali ya trigger inachunguzwa mara moja; idadi ya samples lazima iwe 0. > Moduli za NanoLib Sampler: Kipaumbele cha kawaida kwa thread inayokusanya data katika hali ya firmware. > Moduli za NanoLib Sampler: Algorithm iliyoandikwa upya ili kugundua mpito kati ya hali ya Tayari na Kuendesha. # NanoLib Core: Hakuna Ukiukaji Tena wa Ufikiaji (0xC0000005) unapofunga vifaa 2 au zaidi kwa kutumia maunzi sawa ya basi. # NanoLib Core: Hakuna Kosa la Mgawanyiko zaidi juu ya kushikamana na adapta ya PEAK chini ya Linux. # NanoLib Moduli Sampler: Sahihi sampUsomaji wa maadili yaliyoongozwa katika hali ya firmware. # NanoLib Moduli Sampler: Usanidi sahihi wa 502X:04. # NanoLib Moduli Sampler: Mchanganyiko sahihi wa bafa na chaneli. # NanoLib-Canopen: Kuongezeka kwa muda wa CAN kwa uimara na skanning sahihi kwa viwango vya chini. # NanoLib-Modbus: algorithm ya kugundua VCP ya vifaa maalum (USB-DA-IO).
+ Msaada wa EtherCAT.
+ Kumbuka juu ya mipangilio ya mradi wa VS katika Sanidi mradi wako.
+ getDeviceHardwareGroup (). + getProfinetDCP (isServiceAvailable). + getProfinetDCP (validateProfinetDeviceIp). + AutoAssignObjectDictionary (). + pataXmlFileJina (). + const std::string & xmlFileNjia katika addObjectDictionary (). + kupataSamplerInterface ().
Bidhaa 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)
Toleo: hati 1.4.2 / NanoLib 1.3.0
60
10 Chapa, mawasiliano, matoleo
Hati
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
+ Imeongezwa > Iliyobadilishwa # Iliyorekebishwa + fungua upya Kifaa (). + Msimbo wa hitilafu RasilimaliHaipatikani kwa getDeviceBooloaderVersion (), ~VendorId (), ~HardwareVersion (), ~SerialNumber, na ~Uid. > firmwareUploadFromFile sasa pakiaFirmwareKutokaFile (). > firmwarePakia () sasa pakiaFirmware (). > bootloaderUploadFromFile () sasa pakiaBooloaderFromFile (). > bootloaderPakia () sasa pakiaBooloader (). > bootloaderFirmwareUploadFromFile () kupakiaBooloaderFirmwareKutokaFile (). > bootloaderFirmwareUpload () sasa pakiaBooloaderFirmware (). > nanojUploadKutokaFile () sasa pakiaNanoJFromFile (). > nanojUpload () sasa pakiaNanoJ (). > objectDictionaryLibrary () sasa getObjectDictionaryLibrary (). > String_String_Map sasa StringStringMap. > NanoLib-Common: utekelezaji wa haraka wa listAvailableBusHardware na openBusHardwareWithProtocol na adapta ya Ixxat. > NanoLib-CANopen: mipangilio chaguo-msingi inayotumika (baudrate 1000k, nambari ya basi ya Ixxat 0) ikiwa chaguo za maunzi ya basi ni tupu. > NanoLib-RESTful: ruhusa ya msimamizi imepitwa na wakati kwa mawasiliano na vipakiaji vya Ethaneti chini ya Windows ikiwa kiendesha cha npcap / winpcap kinapatikana. # NanoLib-CANopen: vifaa vya basi sasa hufungua bila hitilafu na chaguzi tupu. # NanoLib-Common: openBusHardwareWithProtocol () bila uvujaji wa kumbukumbu sasa.
+ Msaada wa Linux ARM64. + Uhifadhi wa wingi wa USB / REST / Usaidizi wa Faida ya DCP. + angaliaJimbo la Kuunganishwa (). + getDeviceBooloaderVersion (). + ResultProfinetDevices. + NlcErrorCode (iliyobadilishwa NanotecExceptions). + NanoLib Modbus: VCP / kitovu cha USB kilichounganishwa kwa USB. > Uchanganuzi wa Modbus TCP hurejesha matokeo. < Hali ya kusubiri ya mawasiliano ya Modbus TCP inabaki bila kubadilika.
+ Zaidi ObjectEntryDataType (tata na profile- maalum). + IOError inarudi ikiwa connectDevice () na scanDevices () haipati. + Muda wa kawaida wa ms 100 pekee kwa CanOpen / Modbus.
+ Msaada wa Modbus (pamoja na USB Hub kupitia VCP). + Sura ya Kuunda mradi wako wa Linux. + ExtraHardwareSpecifier kwa BusHardwareId (). + extraId_ na extraStringId_ kwa DeviceId ().
+ wekaBusState (). + getDeviceBooloaderBuildId (). + getDeviceFirmwareBuildId (). + pataDeviceHardwareVersion (). # Marekebisho ya hitilafu.
Toleo.
Bidhaa
0.8.0 0.7.1 0.7.0 0.5.1 0.5.1
Toleo: hati 1.4.2 / NanoLib 1.3.0
61
Nyaraka / Rasilimali
![]() |
Nanotic NanoLib C++ Programming [pdf] Mwongozo wa Mtumiaji NanoLib C Programming, C Programming, Programming |