Nanotic NanoLib C++ プログラミング
製品情報
仕様
- 製品名: ナノライブラリ
- プログラミング 言語: C++
- 製品バージョン: 1.3.0
- ユーザーマニュアルバージョン: 1.4.2
NanoLib ライブラリは、Nanotec コントローラの制御ソフトウェアをプログラミングするために設計されています。制御アプリケーションの開発を容易にするためのユーザー インターフェイス、コア機能、通信ライブラリを提供します。
製品使用説明書
- 始める前に:
- システムがマニュアルに指定されているハードウェア要件を満たしていることを確認してください。この製品の対象読者には、Nanotec コントローラー用の制御ソフトウェアを作成しようとしている開発者が含まれます。
- はじめる:
- NanoLib の使用を開始するには、次の手順に従います。
- まず、NanoLib をプロジェクトにインポートします。
- 必要に応じてプロジェクト設定を構成します。
- NanoLib 機能を組み込むようにプロジェクトをビルドします。
- プロジェクトの作成:
- Windows 環境と Linux 環境の両方でプロジェクトを作成できます。各プラットフォームのマニュアルに記載されている特定の手順に従ってください。
- クラス/関数リファレンス:
- 制御ソフトウェアをプログラミングするために NanoLib で使用できるクラスと関数の詳細なガイドについては、ユーザー マニュアルを参照してください。
よくある質問
- Q: NanoLib の目的は何ですか?
- A: NanoLib は、Nanotec コントローラーの制御ソフトウェアをプログラミングするためのライブラリであり、基本的な機能と通信機能を提供します。
- Q: NanoLib を使い始めるにはどうすればよいですか?
- A: まず、NanoLib をプロジェクトにインポートし、プロジェクト設定を構成し、NanoLib 機能を利用するためにプロジェクトをビルドします。
「`
ユーザーマニュアル NanoLib
C++
製品バージョン 1.3.0 で有効
ユーザーマニュアルバージョン:1.4.2
文書の目的と規則
このドキュメントでは、NanoLib ライブラリのセットアップと使用方法について説明し、Nanotec コントローラー用の独自の制御ソフトウェアをプログラミングするためのすべてのクラスと関数への参照が含まれています。次の書体を使用します。
下線付きのテキストは相互参照またはハイパーリンクを示します。
Example 1: NanoLibAccessorの正確な手順については、セットアップを参照してください。例amp2: Ixxat ドライバーをインストールし、CAN-USB アダプターを接続します。斜体のテキストは、名前付きオブジェクト、メニュー パス/項目、タブ/ file 名前または(必要な場合)外国語表現。
Examp1: 選択 File > 新規 > 空白のドキュメント。ツールタブを開き、コメントを選択します。例amp2: このドキュメントでは、ユーザー (= Nutzer; usuario; utente; utilisateur; utente など) を次のように分類します。
– サードパーティ ユーザー (= Drittnutzer、tercero usuario、terceiro utente、tiers utilisateur、terzo utente など)。 – エンド ユーザー (= Endnutzer、usuario final、utente final、utilisateur final、utente finale など)。
クーリエはコードブロックまたはプログラミングコマンドをマークします。例amp1: Bash経由でsudo make installを呼び出して共有オブジェクトをコピーし、ldconfigを呼び出します。例ample 2: NanoLib のログ レベルを変更するには、次の NanoLibAccessor 関数を使用します。
// ***** C++ バリアント *****
void setLoggingLevel(ログレベル レベル);
太字のテキストは、非常に重要な個々の単語を強調します。または、括弧で囲まれた感嘆符は、非常に重要な(!) 重要性を強調します。
Examp1: 自分自身、他の人、および機器を保護します。すべての Nanotec 製品に一般的に適用される一般的な安全上の注意事項に従ってください。
Examp2: ご自身の安全を守るために、この特定の製品に適用される特定の安全上の注意事項にも従ってください。「同時クリック」という動詞は、コンテキスト メニューなどを開くためにマウスのセカンダリ キーでクリックすることを意味します。
Examp1: を同時クリック fileを選択し、名前の変更を選択して、 file。 元amp2: プロパティを確認するには、 file プロパティを選択します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
4
始める前に
NanoLib の使用を開始する前に、PC を準備し、使用目的とライブラリの制限事項を確認してください。
2.1 システムおよびハードウェア要件
注意 32 ビット操作または廃止されたシステムによる誤動作! 64 ビット システムを使用し、一貫して維持してください。OEM の廃止と ~ 指示に従ってください。
NanoLib 1.3.0 は、CANopen、Modbus RTU (仮想 COM ポート上の USB も)、Modbus TCP、EtherCat、および Profinet を備えたすべての Nanotec 製品をサポートします。古い NanoLib の場合: インプリントの変更ログを参照してください。自己責任でのみ: レガシー システムでの使用。注: FTDI ベースの USB アダプターの使用時に問題が発生した場合は、有効な OEM の指示に従って、レイテンシを可能な限り低く設定してください。
要件(64 ビット システムが必須)
Windows 10 または 11 (Visual Studio 2019 バージョン 16.8 以降および Windows SDK 10.0.20348.0 (バージョン 2104) 以降)
C++再頒布可能パッケージ2017以降 CANopen: Ixxat VCIまたはPCAN基本ドライバ(オプション) EtherCatモジュール/Profinet DCP: NpcapまたはWinPcap RESTfulモジュール: Npcap、WinPcap、または管理者権限
イーサネットブートローダと通信する
Linux および Ubuntu 20.04 LTS から 24 (すべて x64 および arm64)
カーネルヘッダーとlibpopt-devパケットProfinet DCP: CAP_NET_ADMINおよびCAP_NET_RAW機能
CANopen: Ixxat ECIドライバまたはPeak PCAN-USBアダプタ EtherCat: CAP_NET_ADMIN、CAP_NET_RAWおよび
CAP_SYS_NICE 機能 RESTful: CAP_NET_ADMIN イーサネットとの通信機能
ernet ブートローダ (CAP_NET_RAW も推奨)
言語、フィールドバスアダプタ、ケーブル
C++ GCC 7 以上 (Linux)
EtherCAT: イーサネットケーブル VCP / USBハブ: 統一されたUSB USBマスストレージ: USBケーブル REST: イーサネットケーブル CANopen: Ixxat USB-to-CAN V2; Na-
notec ZK-USB-CAN-1、Peak PCANUSB アダプター、arm64 上の Ubuntu に対する Ixxat サポートなし
Modbus RTU: Nanotec ZK-USB-RS485-1 または同等のアダプタ、仮想 COM ポート (VCP) 上の USB ケーブル
Modbus TCP: 製品データシートに従ったイーサネット ケーブル
2.2 使用目的と対象者
NanoLib は、幅広い産業用アプリケーションにおける Nanotec コントローラーの操作および通信を目的とした、熟練したプログラマーのみを対象としたプログラム ライブラリおよびソフトウェア コンポーネントです。
リアルタイム非対応のハードウェア (PC) とオペレーティング システムのため、NanoLib は、同期した多軸動作を必要とするアプリケーションや、一般的に時間に敏感なアプリケーションには使用できません。
いかなる場合でも、NanoLib を安全コンポーネントとして製品またはシステムに統合することはできません。エンド ユーザーに納品する際は、Nanotec が製造したコンポーネントを含む各製品に、安全な使用と安全な操作のための対応する警告通知と手順を追加する必要があります。Nanotec が発行したすべての警告通知をエンド ユーザーに直接渡す必要があります。
2.3 納品範囲と保証
NanoLibはダウンロードから*.zipフォルダとして提供されます webEMEA / APAC または AMERICA のサイト。セットアップ前にダウンロードを適切に保存して解凍してください。NanoLib パッケージには以下が含まれます。
バージョン: doc 1.4.2 / NanoLib 1.3.0
5
2始める前に
ソースコードとしてのインターフェースヘッダー(API)
バイナリ形式のライブラリとしてのコア機能: nano-
通信を容易にするライブラリ: nanolibm_ lib.dll
[yourfieldbus].dll などExampプロジェクト: Example.sln (Visual Studio
プロジェクト)とexample.cpp (メイン file)
保証の範囲については、a) EMEA / APAC または AMERICA のいずれかの利用規約、および b) すべてのライセンス条件を遵守してください。注意: Nanotec は、サードパーティ機器の欠陥または過度の品質、取り扱い、設置、操作、使用、およびメンテナンスについて責任を負いません。安全のため、常に有効な OEM の指示に従ってください。
バージョン: doc 1.4.2 / NanoLib 1.3.0
6
NanoLibアーキテクチャ
NanoLib のモジュール式ソフトウェア構造により、厳密に構築されたコアを中心に、自由にカスタマイズ可能なモーター コントローラー/フィールドバス機能を配置できます。NanoLib には次のモジュールが含まれています。
ユーザーインターフェース(API)
NanoLib コア
インターフェースとヘルパークラスライブラリ
通信ライブラリ フィールドバス専用のライブラリ
コントローラのAPI機能を実装してNanoLib間のインターフェースにアクセスします
OD (オブジェクト辞書)
バスライブラリと対話します。
コアおよびバス ハードウェア。
NanoLibコア機能に基づく
慣習。
3.1 ユーザーインターフェース
ユーザーインターフェースはヘッダーインターフェースから構成される fileコントローラ パラメータにアクセスするために使用できるクラスです。クラス/関数リファレンスで説明されているユーザー インターフェイス クラスを使用すると、次のことが可能になります。
ハードウェア (フィールドバス アダプタ) とコントローラ デバイスの両方に接続します。デバイスの OD にアクセスして、コントローラ パラメータの読み取り/書き込みを行います。
3.2 NanoLib コア
NanoLib コアには、インポート ライブラリ nanolib.lib が付属しています。これは、ユーザー インターフェイス機能を実装し、次の機能を果たします。
通信ライブラリのロードと管理。NanoLibAccessor のユーザー インターフェイス機能を提供します。この通信エントリ ポイントは、
NanoLib コアおよび通信ライブラリで実行できる一連の操作を定義します。
3.3 通信ライブラリ
nanotec.services.nanolib.dll (オプションの Plug & Drive Studio に便利) に加えて、NanoLib は次の通信ライブラリを提供します。
ナノライブラリ_canopen.dll ナノライブラリ_modbus.dll
nanolibm_ethercat.dll nanolibm_restful-api.dll
nanolibm_usbmmsc.dll nanolibm_profinet.dll
すべてのライブラリは、コアとコントローラの間にハードウェア抽象化レイヤーを配置します。コアは起動時に指定されたプロジェクト フォルダからそれらをロードし、対応するプロトコルによってコントローラとの通信を確立するために使用します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
7
はじめる
ご使用のオペレーティング システムに合わせて NanoLib を適切に設定する方法と、必要に応じてハードウェアを接続する方法についてお読みください。
4.1 システムの準備
アダプタ ドライバをインストールする前に、まずオペレーティング システムに合わせて PC を準備してください。Windows OS に合わせて PC を準備するには、C++ 拡張機能付きの MS Visual Studio をインストールしてください。Linux Bash で make と gcc をインストールするには、sudo apt install build-essentials を呼び出します。次に、NanoLib を使用するアプリケーションに対して CAP_NET_ADMIN、CAP_NET_RAW、および CAP_SYS_NICE 機能を有効にします。1. sudo setcap 'cap_net_admin,cap_net_raw,cap_sys_nice+eip' を呼び出します。
2. その後、アダプタ ドライバをインストールします。
4.2 Windows用Ixxatアダプタドライバをインストールする
適切なドライバーをインストールした後でのみ、Ixxat の USB-to-CAN V2 アダプターを使用できます。仮想コンポート (VCP) を有効にするかどうか、またその方法については、USB ドライブの製品マニュアルを参照してください。1. Windows 用の Ixxat VCI 4 ドライバーを次の場所からダウンロードしてインストールします。 www.ixxat.com2. Ixxat の USB-to-CAN V2 コンパクト アダプターを USB 経由で PC に接続します。3. デバイス マネージャーで、ドライバーとアダプターの両方が適切にインストールされ、認識されているかどうかを確認します。
4.3 Windows用のPeakアダプタドライバをインストールする
適切なドライバーをインストールした後でのみ、PeakのPCAN-USBアダプターを使用できます。仮想コンポート(VCP)を有効にするかどうか、またその方法については、USBドライブの製品マニュアルをお読みください。1. Windowsデバイスドライバーセットアップ(デバイスドライバー、ツール、および
API)から http://www.peak-system.com2. Peak の PCAN-USB アダプターを USB 経由で PC に接続します。3. デバイス マネージャーで、ドライバーとアダプターの両方が適切にインストールされ、認識されているかどうかを確認します。
4.4 Linux用Ixxatアダプタドライバをインストールする
適切なドライバーをインストールした後でのみ、Ixxat の USB-to-CAN V2 アダプターを使用できます。注: その他のサポートされているアダプターでは、sudo chmod +777/dev/ttyACM* (* デバイス番号) による権限が必要です。仮想コンポート (VCP) を有効にするかどうか、またその方法については、USB ドライブの製品マニュアルを参照してください。1. ECI ドライバーとデモ アプリケーションに必要なソフトウェアをインストールします。
sudo apt-get update apt-get install libusb-1.0-0-dev libusb-0.1-4 libc6 libstdc++6 libgcc1 buildessential
2. www.ixxat.com から ECI-for-Linux ドライバーをダウンロードします。次の方法で解凍します。
eci_driver_linux_amd64.zip を解凍します。
3. 次の方法でドライバーをインストールします。
cd /EciLinux_amd/src/KernelModule sudo make install-usb
4. デモ アプリケーションをコンパイルして起動し、ドライバーが正常にインストールされたかどうかを確認します。
cd /EciLinux_amd/src/EciDemos/ sudo make cd /EciLinux_amd/bin/release/ ./LinuxEciDemo
バージョン: doc 1.4.2 / NanoLib 1.3.0
8
4 はじめに
4.5 Linux用のPeakアダプタドライバをインストールする
適切なドライバーをインストールした後でのみ、Peak の PCAN-USB アダプターを使用できます。注: その他のサポートされているアダプターでは、sudo chmod +777/dev/ttyACM* (* デバイス番号) による権限が必要です。仮想コンポート (VCP) を有効にするかどうか、またその方法については、USB ドライブの製品マニュアルを参照してください。1. Linux にカーネル ヘッダーがあるかどうかを確認します: ls /usr/src/linux-headers-`uname -r`。ない場合は、インストールします。
sudo apt-get install linux-headers-`uname -r` 2. ここで、libpopt-dev パッケージをインストールします: sudo apt-get install libpopt-dev 3. www.peak-system.com から必要なドライバー パッケージ (peak-linux-driver-xxx.tar.gz) をダウンロードします。 4. 解凍するには、次のコマンドを使用します: tar xzf Peak-linux-driver-xxx.tar.gz 5. 解凍したフォルダーで、ドライバー、PCAN ベース ライブラリなどをコンパイルしてインストールします: make all
sudo make install 6. 機能を確認するには、PCAN-USB アダプターを接続します。
a) カーネルモジュールを確認します。
lsmod | grep pcan b) …そして共有ライブラリ:
ls -l /usr/lib/libpcan*
注意: USB3 の問題が発生した場合は、USB2 ポートを使用してください。
4.6 ハードウェアを接続する
NanoLib プロジェクトを実行するには、アダプターを使用して互換性のある Nanotec コントローラーを PC に接続します。1. 適切なケーブルを使用して、アダプターをコントローラーに接続します。2. アダプターのデータシートに従って、アダプターを PC に接続します。3. 適切な電源を使用してコントローラーの電源を入れます。4. 必要に応じて、製品マニュアルの指示に従って Nanotec コントローラーの通信設定を変更します。
4.7 NanoLibをロードする
簡単で素早い基本から始めるには、exを使用することができます(ただし、使用しないでください)。ampleプロジェクト。1.地域に応じて、NanoLibを弊社からダウンロードしてください。 webEMEA / APACまたはAMERICAのサイトにアクセスします。2. パッケージの files /フォルダを選択し、オプションを1つ選択します。簡単で簡単な基本については、exの開始を参照してください。ample プロジェクト。Windows での高度なカスタマイズについては、「独自の Windows プロジェクトの作成」を参照してください。Linux での高度なカスタマイズについては、「独自の Linux プロジェクトの作成」を参照してください。
バージョン: doc 1.4.2 / NanoLib 1.3.0
9
元を始めるampルプロジェクト
NanoLibが適切にロードされると、exampこのプロジェクトでは、Nanotecコントローラーを使用したNanoLibの使用方法を説明します。注: 各ステップについて、提供されたexampleコードは使用されている関数を説明します。例ampleプロジェクトは次のものから構成されます: `*_functions_example.*' filesには、NanoLibインターフェース関数の実装が含まれています。`*_callback_example.*' fileさまざまなコールバック(スキャン、データ、
ログ出力) `menu_*.*' file、メニューロジックとコードExが含まれていますample.* fileメインプログラムであるメニューを作成し、Sで使用されるすべてのパラメータを初期化します。ampler_example.* file、exを含むampsの実装amplerの使用法。さらに例を挙げるとampさまざまな操作モード用のモーション コマンドを含むファイルは、nanotec.com のナレッジ ベースにあります。すべて Windows または Linux で使用できます。
WindowsでVisual Studioを使用する場合 1. Exを開くample.sln file2. exを開くample.cpp. 3. exをコンパイルして実行するampコード。
Linuxの場合、Bash 1. ソースを解凍する file解凍されたコンテンツのあるフォルダに移動します。メイン file 元のためにampleは
example.cpp。2. bash で以下を呼び出します。
a. 「sudo make install」で共有オブジェクトをコピーし、ldconfigを呼び出します。b. 「make all」でテスト実行ファイルをビルドします。3. binフォルダには実行ファイルexが含まれています。ample filebashの場合: 出力フォルダに移動して./exと入力しますample. エラーが発生しない場合は、共有オブジェクトが正しくインストールされ、ライブラリが使用可能になります。エラーが ./example: 共有ライブラリのロード中にエラーが発生しました: libnanolib.so: 共有オブジェクトを開けません file: そのような file またはディレクトリの場合、共有オブジェクトのインストールに失敗しました。この場合、次の手順に従ってください。4. /usr/local/lib 内に新しいフォルダを作成します (管理者権限が必要)。bash に次のように入力します。
sudo mkdir /usr/local/lib/nanotec
5. zipからすべての共有オブジェクトをコピーします fileの lib フォルダ:
./lib/*.so /usr/local/lib/nanotec/ をインストールします。
6. ターゲット フォルダーの内容を確認します。
ls -al /usr/local/lib/nanotec/
共有オブジェクトがリストされるはずです filelib フォルダから s を実行します。7. このフォルダで ldconfig を実行します。
sudo ldconfig /usr/local/lib/nanotec/
元ample は CLI アプリケーションとして実装され、メニュー インターフェイスを提供します。メニュー エントリはコンテキスト ベースであり、コンテキストの状態に応じて有効または無効になります。コントローラを処理するための一般的なワークフローに従って、さまざまなライブラリ関数を選択して実行できます。1. PC で接続されているハードウェア (アダプタ) を確認し、一覧表示します。2. アダプタへの接続を確立します。3. バスをスキャンして、接続されているコントローラ デバイスを探します。4. デバイスに接続します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
10
5 元を始めるampルプロジェクト
5. ライブラリ関数のXNUMXつ以上をテストします。コントローラのオブジェクト辞書の読み取り/書き込み、ファームウェアの更新、NanoJプログラムのアップロードと実行、モーターの起動と調整、ログの設定と使用などです。ampler。
6. 最初にデバイスへの接続を閉じ、次にアダプタへの接続を閉じます。
バージョン: doc 1.4.2 / NanoLib 1.3.0
11
独自の Windows プロジェクトを作成する
NanoLib を使用するには、独自の Windows プロジェクトを作成、コンパイル、実行します。
6.1 NanoLibのインポート
NanoLibヘッダーをインポートする fileMS Visual Studio 経由で s およびライブラリを使用します。
1. Visual Studio を開きます。2. [新しいプロジェクトの作成] > [コンソール アプリ C++] > [次へ] でプロジェクトの種類を選択します。3. プロジェクトに名前を付けて (ここでは NanolibTest)、ソリューション エクスプローラーにプロジェクト フォルダーを作成します。4. [完了] を選択します。5. ウィンドウを開きます。 file エクスプローラーを開き、新しく作成したプロジェクトフォルダに移動します。6. incとlibの7つの新しいフォルダを作成します。8. NanoLibパッケージフォルダを開きます。XNUMX. そこから、ヘッダーをコピーします。 fileincludeフォルダからプロジェクトフォルダincとすべての.libと.dllにコピーします。
filesを新しいプロジェクトフォルダlibに追加します。9.プロジェクトフォルダの構造を確認します。例:amp上:
構造に適した ect フォルダー:
. NanolibTest inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result_od_entry.hpp lib nanolibm_canopen.dll nanolib.dll … nanolib.lib NanolibTest.cpp NanolibTest.vcxproj NanolibTest.vcxproj.filters NanolibTest.vcxproj.user NanolibTest.sln
6.2 プロジェクトを構成する
MS Visual Studio のソリューション エクスプローラーを使用して NanoLib プロジェクトを設定します。注: NanoLib を正しく操作するには、Visual C++ プロジェクト設定でリリース (デバッグではありません) 構成を選択し、プロジェクトをビルドして C++ 再頒布可能パッケージの VC ランタイムとリンクします [2022]。
1. ソリューション エクスプローラーで、プロジェクト フォルダー (ここでは NanolibTest) に移動します。 2. フォルダーを同時クリックしてコンテキスト メニューを開きます。 3. [プロパティ] を選択します。 4. [すべての構成] と [すべてのプラットフォーム] をアクティブにします。 5. [C/C++] を選択し、[追加のインクルード ディレクトリ] に移動します。 6. 以下を挿入します: $(ProjectDir)Nanolib/includes;%(AdditionalIncludeDirectories) 7. [リンカー] を選択し、[追加のライブラリ ディレクトリ] に移動します。 8. 以下を挿入します: $(ProjectDir)Nanolib;%(AdditionalLibraryDirectories) 9. [リンカーを拡張] を選択し、[入力] を選択します。 10. [追加の依存関係] に移動し、以下を挿入します: nanolib.lib;%(AdditionalDependencies) 11. [OK] で確認します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
12
6 独自のWindowsプロジェクトを作成する
12.「構成」>「C++」>「言語」>「言語標準」>「ISO C++17 標準」に移動し、言語標準を C++17 (/std:c++17) に設定します。
6.3 プロジェクトをビルドする
MS Visual StudioでNanoLibプロジェクトをビルドします。1.メインの*.cppを開きます。 file (ここ:nanolib_example.cpp を作成し、必要に応じてコードを編集します。2. [ビルド] > [構成マネージャー] を選択します。3. [アクティブ ソリューション プラットフォーム] を x64 に変更します。4. [閉じる] で確認します。5. [ビルド] > [ソリューションのビルド] を選択します。6. エラーはありませんか? コンパイル出力に次の内容が適切に報告されているかどうかを確認します。
1>—— クリーンを開始しました: プロジェクト: NanolibTest、構成: Debug x64 —–========== クリーン: 成功 1 件、失敗 0 件、スキップ 0 件 ==========
バージョン: doc 1.4.2 / NanoLib 1.3.0
13
7 独自の Linux プロジェクトを作成する
7 独自の Linux プロジェクトを作成する
NanoLibを使用するには、独自のLinuxプロジェクトを作成し、コンパイルして実行します。1. 解凍したNanoLibインストールキットで、 /nanotec_nanolib. 2. tar.gz内のすべての共有オブジェクトを検索します file3. XNUMXつのオプションを選択します。各ライブラリをMakeでインストールするか、file または手で。
7.1 Makeで共有オブジェクトをインストールするfile
Makeを使用するfile Linux Bashを使用して、すべてのデフォルトの*.soを自動インストールする file1. Bash経由: makeが入っているフォルダに移動しますfile2. 次の方法で共有オブジェクトをコピーします。
sudo make install 3. 次のコマンドで確認します:
ldconfig
7.2 共有オブジェクトを手動でインストールする
Bashを使用してすべての*.soをインストールする fileNanoLib を手動でインストールします。1. Bash 経由: /usr/local/lib 内に新しいフォルダーを作成します。2. 管理者権限が必要です。次のように入力します:
sudo mkdir /usr/local/lib/nanotec 3. 解凍したインストール パッケージ フォルダーに移動します。 4. 次の方法で、lib フォルダーからすべての共有オブジェクトをコピーします。
install ./nanotec_nanolib/lib/*.so /usr/local/lib/nanotec/ 5. 次のコマンドでターゲット フォルダーの内容を確認します。
ls -al /usr/local/lib/nanotec/ 6. lib フォルダのすべての共有オブジェクトがリストされているかどうかを確認します。 7. 次の方法でこのフォルダに対して ldconfig を実行します。
sudo ldconfig /usr/local/lib/nanotec/
7.3 プロジェクトを作成する
共有オブジェクトがインストールされたら、Linux NanoLib 用の新しいプロジェクトを作成します。1. Bash 経由: 次のコマンドで新しいプロジェクト フォルダー (ここでは NanoLibTest) を作成します。
mkdir NanoLibTest cd NanoLibTest
2. ヘッダーをコピーする files を include フォルダ (ここでは inc) にコピーします: mkdir inc cp / FILE IS>/nanotec_nanolib/inc/*.hpp インク
3. メインを作成する file (NanoLibTest.cpp) 経由: #include “accessor_factory.hpp” #include
バージョン: doc 1.4.2 / NanoLib 1.3.0
14
7 独自の Linux プロジェクトを作成する
int main(){ nlc::NanoLibAccessor *アクセサー = getNanoLibAccessor();
nlc::ResultBusHwIds 結果 = accessor->listAvailableBusHardware();
if(result.hasError()) { std::cout << result.getError() << std::endl; }
そうでない場合{ std::cout << “成功” << std::endl; }
アクセサを削除し、0を返します。}
4. プロジェクト フォルダーの構造が適切かどうかを確認します。
. ナノライブラリテスト
accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result.hpp NanoLibTest.cpp をインクリメントします
7.4 プロジェクトをコンパイルしてテストする
Linux NanoLib を Bash 経由で使用できるようにします。
1. Bash経由: メインをコンパイルする file 経由:
g++ -Wall -Wextra -pedantic -I./inc -c NanoLibTest.cpp -o NanoLibTest
2. 実行ファイルを次の方法でリンクします。
g++ -Wall -Wextra -pedantic -I./inc -o test NanoLibTest.o L/usr/local/lib/nanotec -lnanolib -ldl
3. 次の方法でテストプログラムを実行します。
。/テスト
4. Bash が適切にレポートするかどうかを確認します。
成功
バージョン: doc 1.4.2 / NanoLib 1.3.0
15
8 クラス/関数リファレンス
8 クラス/関数リファレンス
NanoLib のユーザー インターフェイス クラスとそのメンバー関数のリストは、こちらにあります。関数の一般的な説明には、短い紹介、関数の定義、およびパラメーター/戻り値のリストが含まれます。
ExampleFunction () 関数が何を行うかを簡単に説明します。
仮想void nlc::NanoLibAccessor::ExampleFunction (Param_a 定数 & param_a、Param_b 定数 & param_B)
パラメータ param_a param_b
ResultVoid を返します
必要に応じて追加コメント。 必要に応じて追加コメント。
8.1 ナノライブラリアクセサ
NanoLib へのエントリ ポイントとして使用されるインターフェイス クラス。一般的なワークフローは次のようになります。
1. NanoLibAccessor.listAvailableBusHardware() でハードウェアのスキャンを開始します。2. BusHardwareOptions() で通信設定を行います。3. NanoLibAccessor.openBusHardwareWithProtocol() でハードウェア接続を開きます。4. NanoLibAccessor.scanDevices() でバスをスキャンして接続されているデバイスを探します。5. NanoLibAccessor.addDevice() でデバイスを追加します。6. NanoLibAccessor.connectDevice() でデバイスに接続します。7. 操作が完了したら、NanoLibAccessor.disconnectDevice() でデバイスを切断します。8. NanoLibAccessor.removeDevice() でデバイスを削除します。9. NanoLibAccessor.closeBusHardware() でハードウェア接続を閉じます。
NanoLibAccessor には次のパブリック メンバー関数があります。
listAvailableBusHardware () この関数を使用して、使用可能なフィールドバス ハードウェアを一覧表示します。
仮想 ResultBusHwIds nlc::NanoLibAccessor::listAvailableBusHardware ()
ResultBusHwIds を返します
フィールドバス ID 配列を提供します。
openBusHardwareWithProtocol () この関数を使用してバス ハードウェアを接続します。
仮想 ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (BusHardwareId const & busHwId、BusHardwareOptions const & busHwOpt)
パラメータ busHwId busHwOpt
ResultVoid を返します
開くフィールドバスを指定します。フィールドバスを開くオプションを指定します。void 関数が実行されたことを確認します。
isBusHardwareOpen () この関数を使用して、フィールドバス ハードウェア接続が開いているかどうかを確認します。
仮想 ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (const BusHardwareId & busHwId、const BusHardwareOptions & busHwOpt)
バージョン: doc 1.4.2 / NanoLib 1.3.0
16
8 クラス/関数リファレンス
パラメータ BusHardwareId true を返す
間違い
開く各フィールドバスを指定します。ハードウェアは開いています。ハードウェアは閉じています。
getProtocolSpecificAccessor () この関数を使用して、プロトコル固有のアクセサー オブジェクトを取得します。
仮想 ResultVoid nlc::NanoLibAccessor::getProtocolSpecificAccessor (BusHardwareId const & busHwId)
パラメータ busHwId 戻り値 ResultVoid
アクセサーを取得するフィールドバスを指定します。void 関数が実行されたことを確認します。
getProfinetDCP () この関数を使用して、Profinet DCP インターフェイスへの参照を返します。
仮想 ProfinetDCP & getProfinetDCP ()
ProfinetDCPを返す
ゲットSamplerInterface() この関数を使用してsへの参照を取得しますampler インターフェース。
仮想SamplerInterface & getSamplerインターフェース ()
Sを返しますamplerインターフェース
sを参照しますampler インターフェース クラス。
setBusState () この関数を使用して、バス プロトコル固有の状態を設定します。
仮想 ResultVoid nlc::NanoLibAccessor::setBusState (const BusHardwareId & busHwId, const std::string & state)
パラメータ busHwId 状態
ResultVoid を返します
開くフィールドバスを指定します。バス固有の状態を文字列値として割り当てます。void 関数が実行されたことを確認します。
scanDevices () この関数を使用して、ネットワーク内のデバイスをスキャンします。
仮想 ResultDeviceIds nlc::NanoLibAccessor::scanDevices (const BusHardwareId & busHwId、NlcScanBusCallback* コールバック)
パラメータ busHwId コールバック
ResultDeviceIds IOError を返します
スキャンするフィールドバスを指定します。NlcScanBusCallback 進行状況トレーサー。デバイス ID 配列を配信します。デバイスが見つからないことを通知します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
17
8 クラス/関数リファレンス
デバイスの追加 ()
この関数を使用して、deviceId で記述されたバス デバイスを NanoLib の内部デバイス リストに追加し、その deviceHandle を返します。
仮想 ResultDeviceHandle nlc::NanoLibAccessor::addDevice (DeviceId const & deviceId)
パラメータ deviceId 戻り値 ResultDeviceHandle
リストに追加するデバイスを指定します。デバイス ハンドルを渡します。
connectDevice () この関数を使用して、deviceHandle によってデバイスを接続します。
仮想ResultVoid nlc::NanoLibAccessor::connectDevice (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultVoid
IOエラー
NanoLib が接続するバス デバイスを指定します。void 関数が実行されたことを確認します。デバイスが見つからないことを通知します。
getDeviceName () この関数を使用して、deviceHandle によってデバイスの名前を取得します。
仮想 ResultString nlc::NanoLibAccessor::getDeviceName (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultString
NanoLib が名前を取得するバス デバイスを指定します。デバイス名は文字列として渡されます。
getDeviceProductCode () この関数を使用して、deviceHandle によってデバイスの製品コードを取得します。
仮想ResultInt nlc::NanoLibAccessor::getDeviceProductCode (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultInt
NanoLib が製品コードを取得するバス デバイスを指定します。製品コードは整数として渡されます。
getDeviceVendorId () この関数を使用して、deviceHandle によってデバイス ベンダー ID を取得します。
仮想ResultInt nlc::NanoLibAccessor::getDeviceVendorId (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultInt
リソースが利用できません
NanoLib がベンダー ID を取得するバス デバイスを指定します。ベンダー ID を整数として提供します。データが見つからないことを通知します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
18
8 クラス/関数リファレンス
getDeviceId () この関数を使用して、NanoLib 内部リストから特定のデバイスの ID を取得します。
仮想ResultDeviceId nlc::NanoLibAccessor::getDeviceId (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultDeviceId
NanoLib がデバイス ID を取得するバス デバイスを指定します。デバイス ID を提供します。
getDeviceIds () この関数を使用して、NanoLib 内部リストからすべてのデバイスの ID を取得します。
仮想ResultDeviceIds nlc::NanoLibAccessor::getDeviceIds()
ResultDeviceIds を返します
デバイス ID リストを配信します。
getDeviceUid () この関数を使用して、deviceHandle によってデバイスの一意の ID (96 ビット / 12 バイト) を取得します。
仮想 ResultArrayByte nlc::NanoLibAccessor::getDeviceUid (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultArrayByte
リソースが利用できません
NanoLib が一意の ID を取得するバス デバイスを指定します。一意の ID をバイト配列として提供します。データが見つからないことを通知します。
getDeviceSerialNumber () この関数を使用して、deviceHandle によってデバイスのシリアル番号を取得します。
仮想 ResultString NanolibAccessor::getDeviceSerialNumber (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultString
リソースが利用できません
NanoLib がシリアル番号を取得するバス デバイスを指定します。シリアル番号を文字列として渡します。データが見つからないことを通知します。
getDeviceHardwareGroup () この関数を使用して、deviceHandle によってバス デバイスのハードウェア グループを取得します。
仮想ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareGroup (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultInt
NanoLib がハードウェア グループを取得するバス デバイスを指定します。
ハードウェア グループを整数として配信します。
getDeviceHardwareVersion () この関数を使用して、deviceHandle によってバス デバイスのハードウェア バージョンを取得します。
仮想 ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareVersion (DeviceHandle const deviceHandle)
バージョン: doc 1.4.2 / NanoLib 1.3.0
19
8 クラス/関数リファレンス
パラメータデバイスハンドル
返品
ResultString リソースが利用できません
NanoLib がハードウェア バージョンを取得するバス デバイスを指定します。デバイス名を文字列として提供します。データが見つからないことを通知します。
getDeviceFirmwareBuildId () この関数を使用して、deviceHandle によってバス デバイスのファームウェア ビルド ID を取得します。
仮想 ResultDeviceId nlc::NanoLibAccessor::getDeviceFirmwareBuildId (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultString
NanoLib がファームウェア ビルド ID を取得するバス デバイスを指定します。
デバイス名を文字列として配信します。
getDeviceBootloaderVersion () この関数を使用して、deviceHandle によってバス デバイスのブートローダ バージョンを取得します。
仮想ResultInt nlc::NanoLibAccessor::getDeviceBootloaderVersion (DeviceHandle const deviceHandle)
パラメータデバイスハンドル
返品
ResultInt リソースが利用できません
NanoLib がブートローダのバージョンを取得するバス デバイスを指定します。ブートローダのバージョンを整数として提供します。データが見つからないことを通知します。
getDeviceBootloaderBuildId () この関数を使用して、deviceHandle によってバス デバイスのブートローダ ビルド ID を取得します。
仮想ResultDeviceId nlc::NanoLibAccessor:: (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultString
NanoLib がブートローダ ビルド ID を取得するバス デバイスを指定します。
デバイス名を文字列として配信します。
rebootDevice () この関数を使用して、deviceHandle によってデバイスを再起動します。
仮想ResultVoid nlc::NanoLibAccessor::rebootDevice (const DeviceHandle deviceHandle)
パラメータ deviceHandle 戻り値 ResultVoid
再起動するフィールドバスを指定します。void 関数が実行されたことを確認します。
getDeviceState () この関数を使用して、デバイス プロトコル固有の状態を取得します。
仮想 ResultString nlc::NanoLibAccessor::getDeviceState (DeviceHandle const deviceHandle)
パラメータデバイスハンドル
NanoLib が状態を取得するバス デバイスを指定します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
20
8 クラス/関数リファレンス
ResultStringを返します
デバイス名を文字列として配信します。
setDeviceState () この関数を使用して、デバイス プロトコル固有の状態を設定します。
仮想ResultVoid nlc::NanoLibAccessor::setDeviceState (const DeviceHandle deviceHandle、const std::string & state)
パラメータ deviceHandle 状態
ResultVoid を返します
NanoLib が状態を設定するバス デバイスを指定します。バス固有の状態を文字列値として割り当てます。void 関数が実行されたことを確認します。
接続状態を取得します ()
この関数を使用して、deviceHandle (= Disconnected、Connected、ConnectedBootloader) によって特定のデバイスの最後の既知の接続状態を取得します。
仮想 ResultConnectionState nlc::NanoLibAccessor::getConnectionState (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultConnectionState
NanoLib が接続状態を取得するバス デバイスを指定します。
接続状態 (= Disconnected、Connected、ConnectedBootloader) を配信します。
接続状態の確認 ()
最後の既知の状態が切断されていなかった場合のみ: この関数を使用して、deviceHandle およびいくつかのモード固有の操作をテストすることで、特定のデバイスの接続状態を確認し、必要に応じて更新します。
仮想 ResultConnectionState nlc::NanoLibAccessor::checkConnectionState (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultConnectionState
NanoLib が接続状態をチェックするバス デバイスを指定します。
接続状態(切断されていない)を配信します。
assignmentObjectDictionary () この手動関数を使用して、オブジェクト ディクショナリ (OD) を独自に deviceHandle に割り当てます。
仮想 ResultObjectDictionary nlc::NanoLibAccessor::assignObjectDictionary (DeviceHandle const deviceHandle、ObjectDictionary const & objectDictionary)
パラメータ deviceHandle objectDictionary
ResultObjectDictionary を返します
NanoLib が OD を割り当てるバス デバイスを指定します。オブジェクト ディクショナリのプロパティを表示します。
自動割り当てオブジェクト辞書 ()
この自動化を使用して、NanoLib がオブジェクト ディクショナリ (OD) を deviceHandle に割り当てるようにします。適切な OD を見つけてロードすると、NanoLib はそれをデバイスに自動的に割り当てます。注: 互換性のある OD がオブジェクト ライブラリにすでにロードされている場合、NanoLib は送信されたディレクトリをスキャンせずにそれを自動的に使用します。
仮想 ResultObjectDictionary nlc::NanoLibAccessor::autoAssignObjectDictionary (DeviceHandle const deviceHandle、const std::string & dictionariesLocationPath)
バージョン: doc 1.4.2 / NanoLib 1.3.0
21
8 クラス/関数リファレンス
パラメータデバイスハンドル
返品
辞書LocationPath ResultObjectDictionary
NanoLib が適切な OD を自動的にスキャンするバス デバイスを指定します。OD ディレクトリへのパスを指定します。オブジェクト ディクショナリのプロパティを表示します。
割り当てられたオブジェクト辞書を取得します ()
この関数を使用して、deviceHandle によってデバイスに割り当てられたオブジェクト ディクショナリを取得します。
仮想ResultObjectDictionary nlc::NanoLibAccessor::getAssignedObjectDictionary (DeviceHandle const device
ハンドル)
パラメータ deviceHandle 戻り値 ResultObjectDictionary
NanoLib が割り当てられた OD を取得するバス デバイスを指定します。オブジェクト ディクショナリのプロパティを表示します。
getObjectDictionaryLibrary () この関数は OdLibrary 参照を返します。
仮想 OdLibrary& nlc::NanoLibAccessor::getObjectDictionaryLibrary ()
OdLibrary& を返します
OD ライブラリ全体とそのオブジェクト ディクショナリを開きます。
setLoggingLevel() この関数を使用して、必要なログの詳細(およびログレベル)を設定します。 file サイズ)。デフォルトのレベルは情報です。
仮想 void nlc::NanoLibAccessor::setLoggingLevel (LogLevel レベル)
パラメータレベル
次のログ詳細が可能です。
0 = トレース 1 = デバッグ 2 = 情報 3 = 警告 4 = エラー 5 = クリティカル 6 = オフ
最低レベル(最大ログ file); 実行可能な詳細とソフトウェアの起動/停止を記録します。デバッグ情報 (= 中間結果、送受信されたコンテンツなど) を記録します。デフォルト レベル; 情報メッセージを記録します。発生したが現在のアルゴリズムを停止しない問題を記録します。アルゴリズムを停止した重大な問題のみを記録します。最高レベル (最小のログ file); はログ記録をオフにします。これ以上のログ記録は一切行われません。ログ記録は一切行われません。
ロギングコールバックの設定 ()
この関数を使用して、ログ記録コールバック ポインターと、そのコールバックのログ モジュール (= ライブラリ) (ロガー自体ではありません) を設定します。
仮想 void nlc::NanoLibAccessor::setLoggingCallback (NlcLoggingCallback* コールバック、const nlc::LogModule & logModule)
パラメータ *callback logModule
コールバック ポインタを設定します。コールバック (ロガーではありません) をライブラリに合わせて調整します。
0 = ナノライブラリコア 1 = ナノライブラリCANopen 2 = ナノライブラリModbus 3 = ナノライブラリEtherCAT
NanoLib のコアのみのコールバックをアクティブ化します。CANopen のみのコールバックをアクティブ化します。Modbus のみのコールバックをアクティブ化します。EtherCAT のみのコールバックをアクティブ化します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
22
8 クラス/関数リファレンス
4 = ナノリブレスト 5 = ナノリブUSB
REST 専用のコールバックをアクティブ化します。USB 専用のコールバックをアクティブ化します。
unsetLoggingCallback () この関数を使用して、ログ記録コールバック ポインターをキャンセルします。
仮想void nlc::NanoLibAccessor::unsetLoggingCallback()
readNumber () この関数を使用して、オブジェクト辞書から数値を読み取ります。
仮想ResultInt nlc::NanoLibAccessor::readNumber (const DeviceHandle deviceHandle、const OdIndex odIndex)
パラメータ deviceHandle odIndex
ResultIntを返します
NanoLib が読み取るバス デバイスを指定します。読み取り元の (サブ) インデックスを指定します。解釈されない数値 (符号付き、符号なし、fix16.16 ビット値) を返します。
readNumberArray () この関数を使用して、オブジェクト辞書から数値配列を読み取ります。
仮想 ResultArrayInt nlc::NanoLibAccessor::readNumberArray (const DeviceHandle deviceHandle、const uint16_t インデックス)
パラメータデバイスハンドルインデックス
ResultArrayIntを返します
NanoLib が読み取るバス デバイスを指定します。配列オブジェクトのインデックス。整数配列を提供します。
readBytes () この関数を使用して、オブジェクト ディクショナリから任意のバイト (ドメイン オブジェクト データ) を読み取ります。
仮想 ResultArrayByte nlc::NanoLibAccessor::readBytes (const DeviceHandle deviceHandle、const OdIndex odIndex)
パラメータ deviceHandle odIndex
ResultArrayByteを返します
NanoLib が読み取るバス デバイスを指定します。読み取り元の (サブ) インデックスを指定します。バイト配列を提供します。
readString () この関数を使用して、オブジェクト ディレクトリから文字列を読み取ります。
仮想 ResultString nlc::NanoLibAccessor::readString (const DeviceHandle deviceHandle、const OdIndex odIndex)
パラメータ deviceHandle odIndex
ResultStringを返します
NanoLib が読み取るバス デバイスを指定します。読み取り元の (サブ) インデックスを指定します。デバイス名を文字列として渡します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
23
8 クラス/関数リファレンス
writeNumber () この関数を使用して、数値をオブジェクト ディレクトリに書き込みます。
仮想ResultVoid nlc::NanoLibAccessor::writeNumber (const DeviceHandle deviceHandle、int64_t 値、const OdIndex odIndex、unsigned int bitLength)
パラメータ deviceHandle 値 odIndex bitLength
ResultVoid を返します
NanoLib が書き込むバス デバイスを指定します。解釈されない値 (符号付き、符号なし、16.16 固定)。読み取り元の (サブ) インデックスを指定します。長さはビット単位です。void 関数が実行されたことを確認します。
writeBytes () この関数を使用して、任意のバイト (ドメイン オブジェクト データ) をオブジェクト ディレクトリに書き込みます。
仮想ResultVoid nlc::NanoLibAccessor::writeBytes (const DeviceHandle deviceHandle, const std::vector & データ、const OdIndex odIndex)
パラメータ deviceHandle データ odIndex
ResultVoid を返します
NanoLib が書き込むバス デバイスを指定します。バイト ベクター/配列。読み取り元の (サブ) インデックスを指定します。void 関数が実行されたことを確認します。
ファームウェアのアップロード ()
この機能を使用して、コントローラーのファームウェアを更新します。
仮想ResultVoid nlc::NanoLibAccessor::uploadFirmware (const DeviceHandle deviceHandle, const std::vector & fwData、NlcDataTransferCallback* コールバック)
パラメータ deviceHandle fwData NlcDataTransferCallback
ResultVoid を返します
NanoLib が更新するバス デバイスを指定します。ファームウェア データを含む配列。データ進行状況トレーサー。void 関数が実行されたことを確認します。
ファームウェアのアップロードFile ()
この機能を使用して、コントローラーのファームウェアをアップロードして更新します。 file.
仮想ResultVoid nlc::NanoLibAccessor::uploadFirmwareFromFile (const DeviceHandle デバイスハンドル、const std::string & 絶対Fileパス、NlcDataTransferCallback* コールバック)
パラメータ deviceHandle absoluteFileパス NlcDataTransferCallback
ResultVoid を返します
NanoLibが更新するバスデバイスを指定します。パス file ファームウェア データ (std::string) が含まれます。データ進行状況トレーサー。void 関数が実行されたことを確認します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
24
8 クラス/関数リファレンス
アップロードブートローダ ()
この機能を使用して、コントローラーのブートローダーを更新します。
仮想ResultVoid nlc::NanoLibAccessor::uploadBootloader (const DeviceHandle deviceHandle, const std::vector & btData、NlcDataTransferCallback* コールバック)
パラメータ deviceHandle btData NlcDataTransferCallback
ResultVoid を返します
NanoLib が更新するバス デバイスを指定します。ブートローダ データを含む配列。データ進行状況トレーサー。void 関数が実行されたことを確認します。
ブートローダーをアップロードFile ()
この機能を使用して、コントローラのブートローダをアップロードして更新します。 file.
仮想ResultVoid nlc::NanoLibAccessor::uploadBootloaderFromFile (const DeviceHandle deviceHandle、const std::string & bootloaderAbsoluteFileパス、NlcDataTransferCallback* コールバック)
パラメータ deviceHandle bootloaderAbsoluteFileパス NlcDataTransferCallback
ResultVoid を返します
NanoLibが更新するバスデバイスを指定します。パス file ブートローダ データ (std::string) を含みます。データ進行状況トレーサー。void 関数が実行されたことを確認します。
ブートローダーファームウェアをアップロードする ()
この機能を使用して、コントローラーのブートローダーとファームウェアを更新します。
仮想ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmware (const DeviceHandle deviceHandle, const std::vector & btData、const std::vector & fwData、NlcDataTransferCallback* コールバック)
パラメータ deviceHandle btData fwData NlcDataTransferCallback
ResultVoid を返します
NanoLib が更新するバス デバイスを指定します。ブートローダ データを含む配列。ファームウェア データを含む配列。データ進行状況トレーサー。void 関数が実行されたことを確認します。
アップロードブートローダーファームウェアFile ()
この機能を使用して、コントローラのブートローダとファームウェアをアップロードして更新します。 files.
仮想ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmwareFromFile (const DeviceHandle deviceHandle、const std::string & bootloaderAbsoluteFileパス、const std::string & absoluteFileパス、NlcDataTransferCallback* コールバック)
パラメータ deviceHandle bootloaderAbsoluteFile絶対パスFileパス NlcDataTransferCallback
ResultVoid を返します
NanoLibが更新するバスデバイスを指定します。パス file ブートローダデータ(std::string)を含む。 file ファームウェア データ (uint8_t) が含まれます。データ進行状況トレーサー。void 関数が実行されたことを確認します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
25
8 クラス/関数リファレンス
アップロードNanoJ()
このパブリック関数を使用して、NanoJ プログラムをコントローラーにアップロードします。
仮想ResultVoid nlc::NanoLibAccessor::uploadNanoJ (DeviceHandle const deviceHandle, std::vector const & vmmData、NlcDataTransferCallback* コールバック)
パラメータ deviceHandle vmmData NlcDataTransferCallback
ResultVoid を返します
NanoLib がアップロードするバス デバイスを指定します。NanoJ データを含む配列。データ進行状況トレーサー。void 関数が実行されたことを確認します。
アップロードNanoJFromFile ()
この公開関数を使用して、NanoJプログラムをコントローラーにアップロードします。 file.
仮想ResultVoid nlc::NanoLibAccessor::uploadNanoJFromFile (const DeviceHandle デバイスハンドル、const std::string & 絶対Fileパス、NlcDataTransferCallback* コールバック)
パラメータ deviceHandle absoluteFileパス NlcDataTransferCallback
ResultVoid を返します
NanoLibがアップロードするバスデバイスを指定します。 file NanoJ データ (std::string) を含みます。データ進行状況トレーサー。void 関数が実行されたことを確認します。
disconnectDevice () この関数を使用して、deviceHandle によってデバイスを切断します。
仮想ResultVoid nlc::NanoLibAccessor::disconnectDevice (DeviceHandle const deviceHandle)
パラメータ deviceHandle 戻り値 ResultVoid
NanoLib が切断するバス デバイスを指定します。void 関数が実行されたことを確認します。
removeDevice () この関数を使用して、NanoLib の内部デバイス リストからデバイスを削除します。
仮想ResultVoid nlc::NanoLibAccessor::removeDevice (const DeviceHandle deviceHandle)
パラメータ deviceHandle 戻り値 ResultVoid
NanoLib がリストから削除するバス デバイスを指定します。void 関数が実行されたことを確認します。
closeBusHardware () この関数を使用して、フィールドバス ハードウェアから切断します。
仮想 ResultVoid nlc::NanoLibAccessor::closeBusHardware (BusHardwareId const & busHwId)
パラメータ busHwId 戻り値 ResultVoid
切断するフィールドバスを指定します。void 関数が実行されたことを確認します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
26
8 クラス/関数リファレンス
8.2 バスハードウェアID
このクラスを使用して、バス ハードウェアを 1 対 1 で識別したり、異なるバス ハードウェアを互いに区別したりできます。このクラス (作成時から変更不可となるセッター関数なし) には、次の情報も保持されます。
ハードウェア(=アダプタ名、ネットワークアダプタなど)使用するプロトコル(=Modbus TCP、CANopenなど)バスハードウェア指定子(=シリアルポート名、MACフレンドリー名
住所等)
BusHardwareId () [1/3] 新しいバス ハードウェア ID オブジェクトを作成するコンストラクター。
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_、std::string const & protocol_、std::string const & hardwareSpecifier_、std::string const & name_)
パラメータ busHardware_ protocol_ hardwareSpecifier_ extraHardwareSpecifier_ name_
ハードウェア タイプ (= ZK-USB-CAN-1 など)。バス通信プロトコル (= CANopen など)。ハードウェアの指定子 (= COM3 など)。ハードウェアの追加指定子 (USB の位置情報など)。フレンドリ名 (= AdapterName (Port) など)。
BusHardwareId () [2/3] 追加のハードウェア指定子のオプションを使用して、新しいバス ハードウェア ID オブジェクトを作成するコンストラクター。
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_、std::string const & protocol_、std::string const & hardwareSpecifier_、std::string const & extraHardwareSpecifier_、std::string const & name_)
パラメータ busHardware_ protocol_ hardwareSpecifier_ extraHardwareSpecifier_ name_
ハードウェア タイプ (= ZK-USB-CAN-1 など)。バス通信プロトコル (= CANopen など)。ハードウェアの指定子 (= COM3 など)。ハードウェアの追加指定子 (USB の位置情報など)。フレンドリ名 (= AdapterName (Port) など)。
BusHardwareId () [3/3] 既存の busHardwareId をコピーするコンストラクター。
nlc::BusHardwareId::BusHardwareId (BusHardwareId 定数 &)
nlc::BusHardwareId::BusHardwareId (BusHardwareId 定数 &)
パラメータ busHardwareId
コピー元のバス ハードウェア ID に名前を付けます。
equals () 新しいバス ハードウェア ID を既存のものと比較します。
bool nlc::BusHardwareId::equals (BusHardwareId 定数 & その他) 定数
パラメータその他 trueを返す
同じクラスの別のオブジェクト。両方のすべての値が等しい場合。
バージョン: doc 1.4.2 / NanoLib 1.3.0
27
8 クラス/関数リファレンス
間違い
値が異なる場合。
getBusHardware () バス ハードウェア文字列を読み取ります。
std::string nlc::BusHardwareId::getBusHardware () 定数
文字列を返す
getHardwareSpecifier() バスハードウェアの指定子文字列(=ネットワーク名など)を読み取ります。
std::string nlc::BusHardwareId::getHardwareSpecifier() 定数
文字列を返す
getExtraHardwareSpecifier() バスの追加ハードウェアの指定子文字列 (= MAC アドレスなど) を読み取ります。
std::string nlc::BusHardwareId::getExtraHardwareSpecifier () const
文字列を返す
getName () バス ハードウェアのフレンドリ名を読み取ります。
std::string nlc::BusHardwareId::getName() 定数
文字列を返す
getProtocol () バス プロトコル文字列を読み取ります。
std::string nlc::BusHardwareId::getProtocol() 定数
文字列を返す
toString () バス ハードウェア ID を文字列として返します。
std::string nlc::BusHardwareId::toString() 定数
文字列を返す
8.3 バスハードウェアオプション
このクラスの文字列のキー値リストで、バス ハードウェアを開くために必要なすべてのオプションを見つけます。
バージョン: doc 1.4.2 / NanoLib 1.3.0
28
8 クラス/関数リファレンス
BusHardwareOptions () [1/2] 新しいバス ハードウェア オプション オブジェクトを構築します。
nlc::BusHardwareOptions::BusHardwareOptions () キーと値のペアを追加するには、関数 addOption () を使用します。
BusHardwareOptions () [2/2] キーと値のマップが既に配置されている新しいバス ハードウェア オプション オブジェクトを構築します。
nlc::BusHardwareOptions::BusHardwareOptions (std::map定数とオプション)
パラメータオプション
バス ハードウェアが動作するためのオプションを含むマップ。
addOption () 追加のキーと値を作成します。
void nlc::BusHardwareOptions::addOption (std::string const & キー、std::string const & 値)
パラメータキー値
Example: BAUD_RATE_OPTIONS_NAME、bus_hw_options_defaultsを参照
Example: BAUD_RATE_1000K、bus_hw_options_defaultsを参照
equals () BusHardwareOptions を既存のものと比較します。
bool nlc::BusHardwareOptions::equals (BusHardwareOptions const & other) const
パラメータその他 trueを返す
間違い
同じクラスの別のオブジェクト。他のオブジェクトにまったく同じオプションがすべてある場合。他のオブジェクトに異なるキーまたは値がある場合。
getOptions () 追加されたすべてのキーと値のペアを読み取ります。
std::マップnlc::BusHardwareOptions::getOptions() 定数
文字列マップを返す
toString() すべてのキー/値を文字列として返します。
std::string nlc::BusHardwareId::toString() 定数
文字列を返す
8.4 バスハードウェアオプションデフォルト
このデフォルトの構成オプション クラスには、次のパブリック属性があります。
バージョン: doc 1.4.2 / NanoLib 1.3.0
29
8 クラス/関数リファレンス
const CanBus const シリアル const RESTfulBus const EtherCATBus
canBus = CanBus() serial = シリアル() restfulBus = RESTfulBus() ethercatBus = EtherCATBus()
8.5 ボーレート
次のパブリック属性に CAN バス ボーレートが含まれる構造体:
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
BAUD_RATE_1000K = “1000k” BAUD_RATE_800K = “800k” BAUD_RATE_500K = “500k” BAUD_RATE_250K = “250k” BAUD_RATE_125K = “125k” BAUD_RATE_100K = “100k” BAUD_RATE_50K = “50k” BAUD_RATE_20K = “20k” BAUD_RATE_10K = “10k” BAUD_RATE_5K = “5k”
8.6 CANバス
次のパブリック属性を持つデフォルトの構成オプション クラス:
const std::string const CanBaudRate const Ixxat
BAUD_RATE_OPTIONS_NAME = “canアダプタのボーレート” baudRate = CanBaudRate() ixxat = Ixxat()
8.7 CanOpenNmtService
NMT サービスの場合、この構造体には、次のパブリック属性の文字列値として CANopen NMT 状態が含まれます。
const std::string const std::string const std::string const std::string const std::string
START = “START” STOP = “STOP” PRE_OPERATIONAL = “PRE_OPERATIONAL” RESET = “RESET” RESET_COMMUNICATION = “RESET_COMMUNICATION”
8.8 CanOpenNmtState
この構造体には、次のパブリック属性の文字列値として CANopen NMT 状態が含まれています。
const std::string const std::string const std::string const std::string const std::string
停止 = “停止” 運用前 = “運用前” 運用中 = “運用中” 初期化 = “初期化” 不明 = “不明”
8.9 EtherCATBus構造体
この構造体には、次のパブリック属性の EtherCAT 通信構成オプションが含まれています。
バージョン: doc 1.4.2 / NanoLib 1.3.0
30
8 クラス/関数リファレンス
const std::string NETWORK_FIRMWARE_STATE_OP- ネットワーク状態はファームウェアモードとして扱われます。許容可能
TION_NAME = “ネットワークファームウェアの状態”
値(デフォルト = PRE_OPERATIONAL):
EtherCATState::PRE_OPERATIONAL EtherCATState::SAFE_OPERATIONAL EtherCATState::OPERATIONAL
const std::string DEFAULT_NETWORK_FIRMWARE_ STATE = “PRE_OPERATIONAL”
const std::string EXCLUSIVE_LOCK_TIMEOUT_OP - 排他ロックを取得するためのタイムアウト(ミリ秒)
TION_NAME = “共有ロックタイムアウト”
ネットワーク(デフォルト = 500 ミリ秒)。
定数 unsigned int DEFAULT_EXCLUSIVE_LOCK_ TIMEOUT = “500”
const std::string SHARED_LOCK_TIMEOUT_OPTION_ 共有ロックを取得するまでのタイムアウト(ミリ秒)
NAME = “共有ロックタイムアウト”
ネットワーク(デフォルト = 250 ミリ秒)。
定数符号なし整数 DEFAULT_SHARED_LOCK_TIMEOUT = “250”
const std::string READ_TIMEOUT_OPTION_NAME = 読み取り操作のタイムアウト(ミリ秒単位)(デフォルト
「読み取りタイムアウト」
= 700 ミリ秒)。
定数符号なし整数 DEFAULT_READ_TIMEOUT = “700”
const std::string WRITE_TIMEOUT_OPTION_NAME = 書き込み操作のタイムアウト(ミリ秒)(デフォルト
「書き込みタイムアウト」
= 200 ミリ秒)。
定数符号なし整数 DEFAULT_WRITE_TIMEOUT = “200”
const std::string READ_WRITE_ATTEMPTS_OPTION_ 読み取りまたは書き込みの最大試行回数(ゼロ以外の値)
NAME = “読み取り/書き込み試行”
のみ、デフォルト = 5)。
定数符号なし整数 DEFAULT_READ_WRITE_ATTEMPTS = “5”
const std::string CHANGE_NETWORK_STATE_ATTEMPTS_OPTION_NAME = “ネットワーク状態の変更試行”
ネットワーク状態を変更する試行の最大回数 (ゼロ以外の値のみ、デフォルト = 10)。
定数符号なし整数 DEFAULT_CHANGE_NETWORK_ STATE_ATTEMPTS = “10”
const std::string PDO_IO_ENABLED_OPTION_NAME デジタル入力のPDO処理を有効または無効にします。
= “PDO IO 有効”
出力(「True」または「False」のみ、デフォルト = 「True」)。
const std::string DEFAULT_PDO_IO_ENABLED = “True”
8.10 EtherCATState構造体
この構造体には、次のパブリック属性の文字列値として EtherCAT スレーブ/ネットワークの状態が含まれます。注: 電源投入時のデフォルト状態は PRE_OPERATIONAL です。NanoLib は、非リアルタイム オペレーティング システムでは信頼できる「OPERATIONAL」状態を提供できません。
const std::string const std::string const std::string const std::string const std::string const std::string
NONE = “NONE” INIT = “INIT” PRE_OPERATIONAL = “PRE_OPERATIONAL” BOOT = “BOOT” SAFE_OPERATIONAL = “SAFE_OPERATIONAL” OPERATIONAL = “OPERATIONAL”
バージョン: doc 1.4.2 / NanoLib 1.3.0
31
8 クラス/関数リファレンス
8.11 イクサット
この構造体は、次のパブリック属性に Ixxat usb-to-can に関するすべての情報を保持します。
定数std::文字列
ADAPTER_BUS_NUMBER_OPTIONS_NAME = “ixxat アダプタ バス番号”
const IxxatAdapterBusNumber アダプタバス番号 = IxxatAdapterBusNumber ()
8.12 Ixxatアダプタバス番号
この構造体は、次のパブリック属性に Ixxat usb-to-can のバス番号を保持します。
const std::string const std::string const std::string const std::string
BUS_NUMBER_0_DEFAULT = “0” BUS_NUMBER_1 = “1” BUS_NUMBER_2 = “2” BUS_NUMBER_3 = “3”
8.13ピーク
この構造体は、次のパブリック属性に Peak usb-to-can に関するすべての情報を保持します。
定数std::文字列
ADAPTER_BUS_NUMBER_OPTIONS_NAME = “ピークアダプタバス番号”
const PeakAdapterBusNumber アダプタバス番号 = PeakAdapterBusNumber ()
8.14 ピークアダプタバス番号
この構造体は、次のパブリック属性で Peak usb-to-can のバス番号を保持します。
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
BUS_NUMBER_1_DEFAULT = std::to_string (PCAN_USBBUS1) BUS_NUMBER_2 = std::to_string (PCAN_USBBUS2) BUS_NUMBER_3 = std::to_string (PCAN_USBBUS3) BUS_NUMBER_4 = std::to_string (PCAN_USBBUS4) BUS_NUMBER_5 = std::to_string (PCAN_USBBUS5) BUS_NUMBER_6 = std::to_string (PCAN_USBBUS6) BUS_NUMBER_7 = std::to_string (PCAN_USBBUS7) BUS_NUMBER_8 = std::to_string (PCAN_USBBUS8) BUS_NUMBER_9 = std::to_string (PCAN_USBBUS9) BUS_NUMBER_10 = std::to_string (PCAN_USBBUS10) BUS_NUMBER_11 = std::to_string (PCAN_USBBUS11) BUS_NUMBER_12 = std::to_string (PCAN_USBBUS12) BUS_NUMBER_13 = std::to_string (PCAN_USBBUS13) BUS_NUMBER_14 = std::to_string (PCAN_USBBUS14) BUS_NUMBER_15 = std::to_string (PCAN_USBBUS15) BUS_NUMBER_16 = std::to_string (PCAN_USBBUS16)
8.15 デバイスハンドル
このクラスは、バス上のデバイスを制御するためのハンドルを表し、次のパブリック メンバー関数を持ちます。
デバイスハンドル () デバイスハンドル (uint32_t ハンドル)
バージョン: doc 1.4.2 / NanoLib 1.3.0
32
8 クラス/関数リファレンス
equals () 指定されたデバイス ハンドルと自身を比較します。
bool は (DeviceHandle const other) と等しくなります (uint32_t ハンドル)
toString () デバイス ハンドルの文字列表現を返します。
std::string toString() 定数
get () デバイスハンドルを返します。
uint32_t 取得() 定数
8.16 デバイスID
このクラス (作成時から不変ではありません) を使用して、バス上のデバイスを識別および区別します。
ハードウェアアダプタ識別子
デバイス識別子
説明
デバイスID / 説明値の意味はバスによって異なります。例:ampたとえば、CAN バスでは整数 ID が使用される場合があります。
DeviceId () [1/3] 新しいデバイスIDオブジェクトを構築します。
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId_、unsigned int deviceId_、std::string const & description_)
パラメータ busHardwareId_ deviceId_ description_
バスの識別子。インデックス。バスの対象です (= CANopen ノード ID など)。説明 (空の場合もあります)。バスの対象です。
DeviceId () [2/3] 拡張IDオプションを使用して新しいデバイスIDオブジェクトを構築します。
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId、unsigned int deviceId_、std::string const & description_ std::vector const & extraId_、std::string const & extraStringId_) です。
パラメータ busHardwareId_ deviceId_ description_ extraId_ extraStringId_
バスの識別子。インデックス。バスの対象 (= CANopen ノード ID など)。説明 (空の場合もあります)。バスの対象。追加 ID (空の場合もあります)。意味はバスによって異なります。追加文字列 ID (空の場合もあります)。意味はバスによって異なります。
DeviceId () [3/3] デバイスIDオブジェクトのコピーを構築します。
nlc::DeviceId::DeviceId (デバイスId 定数 &)
バージョン: doc 1.4.2 / NanoLib 1.3.0
33
8 クラス/関数リファレンス
パラメータ deviceId_
コピー元のデバイス ID。
equals () 新しいオブジェクトと既存のオブジェクトを比較します。
bool nlc::DeviceId::equals (DeviceId 定数 & その他) 定数
ブール値を返す
getBusHardwareId () バス ハードウェア ID を読み取ります。
バスハードウェアID nlc::DeviceId::getBusHardwareId () 定数
BusHardwareIdを返す
getDescription () デバイスの説明を読み取ります (未使用の可能性があります)。
std::string nlc::DeviceId::getDescription() 定数
文字列を返す
getDeviceId () デバイス ID を読み取ります (未使用の可能性があります)。
符号なし整数 nlc::DeviceId::getDeviceId () 定数
符号なし整数を返す
toString () オブジェクトを文字列として返します。
std::string nlc::DeviceId::toString() 定数
文字列を返す
getExtraId () デバイスの追加 ID を読み取ります (未使用の場合もあります)。
定数std::vector &getExtraId() 定数
ベクトルを返す
追加の追加 ID のベクトル (空の場合もあります)。意味はバスによって異なります。
getExtraStringId () デバイスの追加の文字列 ID を読み取ります (未使用の場合もあります)。
std::string getExtraStringId () const
バージョン: doc 1.4.2 / NanoLib 1.3.0
34
8 クラス/関数リファレンス
文字列を返す
追加の文字列 ID (空の場合もあります)。意味はバスによって異なります。
8.17 ログレベルコンバータ
このクラスはログ レベルを文字列として返します。static std::string toString (nlc::LogLevel logLevel)
8.18 ログモジュールコンバータ
このクラスは、ライブラリ固有のログ modulesetLoggingLevel () を文字列として返します。
静的std::文字列
toString (nlc::LogModule ログモジュール)
静的 std::string toString (nlc::LogModule logModule)
8.19 オブジェクト辞書
このクラスはコントローラのオブジェクト辞書を表し、次のパブリックメンバー関数を持ちます: getDeviceHandle()
virtual ResultDeviceHandle getDeviceHandle () const ResultDeviceHandle を返す
getObject () 仮想 ResultObjectSubEntry getObject (OdIndex const odIndex) ResultObjectSubEntry を返します
getObjectEntry () 仮想 ResultObjectEntry getObjectEntry (uint16_t インデックス)
ResultObjectEntryを返します
オブジェクトのプロパティについて通知します。
XML を取得するFile名前 () 仮想 ResultString getXmlFile名前 () 定数
ResultStringを返します
XMLを返します file 名前を文字列として指定します。
readNumber () 仮想 ResultInt readNumber (OdIndex const odIndex) ResultInt を返す
readNumberArray() 仮想ResultArrayInt readNumberArray (uint16_t const インデックス)
バージョン: doc 1.4.2 / NanoLib 1.3.0
35
8 クラス/関数リファレンス
ResultArrayInt readString() を返します
virtual ResultString readString (OdIndex const odIndex) ResultString を返します readBytes () virtual ResultArrayByte readBytes (OdIndex const odIndex) ResultArrayByte を返します writeNumber () virtual ResultVoid writeNumber (OdIndex const odIndex, const int64_t value) ResultVoid writeBytes () virtual ResultVoid writeBytes (OdIndex const OdIndex, std::vector
const & data) ResultVoid を返します 関連リンク OdIndex
8.20 オブジェクトエントリ
このクラスはオブジェクト ディクショナリのオブジェクト エントリを表し、次の静的保護属性とパブリック メンバー関数を持ちます。
静的 nlc::ObjectSubEntry 無効なオブジェクト
getName() オブジェクトの名前を文字列として読み取ります。
仮想std::string getName() const
getPrivate () オブジェクトがプライベートかどうかを確認します。
仮想ブール getPrivate() 定数
getIndex() オブジェクトインデックスのアドレスを読み取ります。
仮想uint16_t getIndex() 定数
バージョン: doc 1.4.2 / NanoLib 1.3.0
36
8 クラス/関数リファレンス
getDataType () オブジェクトのデータ型を読み取ります。
仮想 nlc::ObjectEntryDataType getDataType () 定数
getObjectCode() オブジェクトコードを読み取ります:
Null 定義型 定義構造体 変数 配列 レコード
0x00 0x05 0x06 0x07 0x08 0x09
仮想 nlc::ObjectCode getObjectCode () 定数
getObjectSaveable () オブジェクトが保存可能かどうか、およびそのカテゴリを確認します (詳細については製品マニュアルを参照してください): APPLICATION、COMMUNICATION、DRIVE、MISC_CONFIG、MODBUS_RTU、NO、TUNING、CUSTOMER、ETHERNET、CANOPEN、VERIFY1020、UNKNOWN_SAVEABLE_TYPE
仮想 nlc::ObjectSaveable getObjectSaveable () 定数
getMaxSubIndex () このオブジェクトでサポートされているサブインデックスの数を読み取ります。
仮想 uint8_t getMaxSubIndex () 定数
getSubEntry () 仮想 nlc::ObjectSubEntry & getSubEntry (uint8_t subIndex)
ObjectSubEntry も参照してください。
8.21 オブジェクトサブエントリ
このクラスは、オブジェクト ディクショナリのオブジェクト サブエントリ (サブインデックス) を表し、次のパブリック メンバー関数を持ちます。
getName() オブジェクトの名前を文字列として読み取ります。
仮想std::string getName() const
getSubIndex () サブインデックスのアドレスを読み取ります。
仮想 uint8_t getSubIndex () 定数
バージョン: doc 1.4.2 / NanoLib 1.3.0
37
8 クラス/関数リファレンス
getDataType () オブジェクトのデータ型を読み取ります。
仮想 nlc::ObjectEntryDataType getDataType () 定数
getSdoAccess () サブインデックスが SDO 経由でアクセス可能かどうかを確認します。
読み取り専用
1
書き込み専用
2
読み書き
3
アクセスなし
0
仮想 nlc::ObjectSdoAccessAttribute getSdoAccess () 定数
getPdoAccess () サブインデックスが PDO 経由でアクセス可能/マップ可能かどうかを確認します。
Tx
1
Rx
2
送信
3
いいえ
0
仮想 nlc::ObjectPdoAccessAttribute getPdoAccess () 定数
getBitLength () サブインデックスの長さをチェックします。
仮想 uint32_t getBitLength() 定数
getDefaultValueAsNumeric () 数値データ型のサブインデックスのデフォルト値を読み取ります。
仮想ResultInt getDefaultValueAsNumeric (std::string const & key) const
getDefaultValueAsString () 文字列データ型のサブインデックスのデフォルト値を読み取ります。
仮想ResultString getDefaultValueAsString (std::string const & key) const
getDefaultValues () サブインデックスのデフォルト値を読み取ります。
仮想 std::map getDefaultValues() 定数
バージョン: doc 1.4.2 / NanoLib 1.3.0
38
8 クラス/関数リファレンス
readNumber () サブインデックスの実際の数値を読み取ります。
仮想ResultInt readNumber() 定数
readString () サブインデックスの実際の文字列値を読み取ります。
仮想ResultString readString() 定数
readBytes () サブインデックスの実際の値をバイト単位で読み取ります。
仮想ResultArrayByte readBytes() 定数
writeNumber () サブインデックスに数値を書き込みます。
仮想ResultVoid writeNumber (const int64_t 値) const
writeBytes () サブインデックスにバイト単位で値を書き込みます。
仮想ResultVoid writeBytes (std::vector const & データ) const
8.22 インデックス
このクラス (作成時から変更不可) を使用して、オブジェクト ディレクトリ インデックス/サブインデックスをラップして検索します。デバイスの OD には、最大 65535 (0xFFFF) 行と 255 (0xFF) 列があり、不連続な行の間にはギャップがあります。詳細については、CANopen 標準と製品マニュアルを参照してください。
OdIndex () 新しい OdIndex オブジェクトを構築します。
nlc::OdIndex::OdIndex (uint16_t インデックス、uint8_t サブインデックス)
パラメータインデックスサブインデックス
0 から 65535 (0xFFFF) まで含む。0 から 255 (0xFF) まで含む。
getIndex() インデックス(0x0000 から 0xFFFF まで)を読み取ります。
uint16_t nlc::OdIndex::getIndex() 定数
uint16_t を返します
getSubindex() サブインデックス(0x00から0xFFまで)を読み出す
uint8_t nlc::OdIndex::getSubIndex() 定数
バージョン: doc 1.4.2 / NanoLib 1.3.0
39
8 クラス/関数リファレンス
uint8_t を返します
toString () インデックスとサブインデックスを文字列として返します。文字列のデフォルト 0xIIII:0xSS は次のようになります。
I = 0x0000から0xFFFFまでのインデックス
S = 0x00から0xFFまでのサブインデックス
std::string nlc::OdIndex::toString() 定数
0xIIII:0xSSを返します
デフォルトの文字列表現
8.23 Odライブラリ
このプログラミングインターフェースを使用して、XMLからObjectDictionaryクラスのインスタンスを作成します。assignObjectDictionaryを使用すると、一意に作成された識別子によって各インスタンスを特定のデバイスにバインドできます。このようにして作成されたObjectDictionaryインスタンスは、インデックスでアクセスできるようにOdLibraryオブジェクトに格納されます。ODLibraryクラスは、ObjectDictionaryアイテムを次の場所から読み込みます。 file または配列を作成し、それらを保存し、次のパブリック メンバー関数を持ちます。
getObjectDictionaryCount () 仮想 uint32_t getObjectDictionaryCount () 定数
getObjectDictionary () 仮想 ResultObjectDictionary getObjectDictionary (uint32_t odIndex)
ResultObjectDictionary を返します
オブジェクト辞書の追加File ()
仮想ResultObjectDictionary addObjectDictionaryFromFile (std::string 定数 & absoluteXmlFileパス)
ResultObjectDictionary を返します
オブジェクト辞書を追加します ()
仮想ResultObjectDictionary addObjectDictionary (std::vector const & odXmlData、const std::string &xmlFileパス = std::string ())
ResultObjectDictionary を返します
8.24 OdTypesヘルパー
次のパブリック メンバー関数に加えて、このクラスにはカスタム データ型が含まれています。注: カスタム データ型を確認するには、od_types.hpp で列挙クラス ObjectEntryDataType を探します。
uintToObjectCode () 符号なし整数をオブジェクトコードに変換します。
Null 定義タイプ
0x00 0x05
バージョン: doc 1.4.2 / NanoLib 1.3.0
40
8 クラス/関数リファレンス
変数配列レコードの破壊
0x06 0x07 0x08 0x09
静的 ObjectCode uintToObjectCode (unsigned int objectCode)
isNumericDataType () データ型が数値かどうかを通知します。
静的ブール isNumericDataType (ObjectEntryDataType データ型)
isDefstructIndex () オブジェクトが定義構造インデックスであるかどうかを通知します。
static bool isDefstructIndex (uint16_t typeNum)
isDeftypeIndex () オブジェクトが定義型インデックスであるかどうかを通知します。
static bool isDeftypeIndex (uint16_t typeNum)
isComplexDataType () データ型が複雑かどうかを通知します。
静的ブール isComplexDataType (ObjectEntryDataType データ型)
uintToObjectEntryDataType () 符号なし整数を OD データ型に変換します。
sstatic ObjectEntryDataType uintToObjectEntryDataType (uint16_t objectDataType)
objectEntryDataTypeToString () OD データ型を文字列に変換します。
静的 std::string objectEntryDataTypeToString (ObjectEntryDataType odDataType)
stringToObjectEntryDatatype () 可能であれば文字列を OD データ型に変換します。それ以外の場合は UNKNOWN_DATATYPE を返します。
静的 ObjectEntryDataType stringToObjectEntryDatatype (std::string dataTypeString)
バージョン: doc 1.4.2 / NanoLib 1.3.0
41
8 クラス/関数リファレンス
objectEntryDataTypeBitLength () オブジェクト エントリ データ型のビット長を通知します。
静的 uint32_t objectEntryDataTypeBitLength (ObjectEntryDataType const & dataType)
8.25 RESTfulBus構造体
この構造体には、RESTful インターフェイス (イーサネット経由) の通信構成オプションが含まれています。次のパブリック属性が含まれています。
const std::string const unsigned long const std::string const unsigned long const std::string const unsigned long
CONNECT_TIMEOUT_OPTION_NAME = “RESTful 接続タイムアウト” DEFAULT_CONNECT_TIMEOUT = 200 REQUEST_TIMEOUT_OPTION_NAME = “RESTful リクエストタイムアウト” DEFAULT_REQUEST_TIMEOUT = 200 RESPONSE_TIMEOUT_OPTION_NAME = “RESTful レスポンスタイムアウト” DEFAULT_RESPONSE_TIMEOUT = 750
8.26 プロフィネットDCP
Linux では、呼び出しアプリケーションに CAP_NET_ADMIN および CAP_NET_RAW 機能が必要です。有効にするには、sudo setcap 'cap_net_admin,cap_net_raw+eip' ./executable を実行します。Windows では、ProfinetDCP インターフェイスは WinPcap (バージョン 4.1.3 でテスト済み) または Npcap (バージョン 1.60 および 1.30 でテスト済み) を使用します。したがって、動的に読み込まれた wpcap.dll ライブラリを次の順序で検索します (注: 現在 Win10Pcap はサポートされていません)。
1. Nanolib.dll ディレクトリ 2. Windows システム ディレクトリ SystemRoot%System32 3. Npcap インストール ディレクトリ SystemRoot%System32Npcap 4. 環境パス
このクラスは Profinet DCP インターフェイスを表し、次のパブリック メンバー関数を持ちます。
getScanTimeout () デバイススキャンのタイムアウトを通知します (デフォルト = 2000 ミリ秒)。
仮想 uint32_t nlc::ProfinetDCP::getScanTimeout () 定数
setScanTimeout () デバイススキャンのタイムアウトを設定します (デフォルト = 2000 ミリ秒)。
仮想void nlc::setScanTimeout (uint32_t timeoutMsec)
getResponseTimeout () セットアップ、リセット、点滅操作に対するデバイス応答タイムアウトを通知します (デフォルト = 1000 ミリ秒)。
仮想 uint32_t nlc::ProfinetDCP::getResponseTimeout () 定数
setResponseTimeout () セットアップ、リセット、点滅操作に対するデバイス応答タイムアウトを通知します (デフォルト = 1000 ミリ秒)。
仮想void nlc::ProfinetDCP::setResponseTimeout (uint32_t timeoutMsec)
バージョン: doc 1.4.2 / NanoLib 1.3.0
42
8 クラス/関数リファレンス
サービスが利用可能かどうか ()
この機能を使用して、Profinet DCP サービスの可用性を確認します。
ネットワークアダプタの有効性/可用性 Windows: WinPcap / Npcap の可用性 Linux: CAP_NET_ADMIN / CAP_NET_RAW の機能
virtual ResultVoid nlc::ProfinetDCP::isServiceAvailable (const BusHardwareId & BusHardwareId)
パラメータ BusHardwareId true を返す
間違い
チェックする Profinet DCP サービスのハードウェア ID。サービスは利用可能です。サービスは利用できません。
scanProfinetDevices () この関数を使用して、ハードウェア バスをスキャンし、Profinet デバイスの存在を確認します。
仮想 ResultProfinetDevices scanProfinetDevices (const BusHardwareId & busHardwareId)
パラメータ BusHardwareId 戻り値 ResultProfinetDevices
開く各フィールドバスを指定します。ハードウェアはオープンです。
setupProfinetDevice() は、次のデバイス設定を確立します。
デバイス名
IPアドレス
ネットワークマスク
デフォルトゲートウェイ
仮想ResultVoid nlc::setupProfinetDevice (const BusHardwareId & busHardwareId、const ProfinetDevice struct & profinetDevice、bool savePermanent)
resetProfinetDevice () デバイスを停止し、工場出荷時のデフォルトにリセットします。
仮想ResultVoid nlc::resetProfinetDevice (const BusHardwareId & busHardwareId、const ProfinetDevice & profinetDevice)
blinkProfinetDevice () は、Profinet デバイスに Profinet LED の点滅を開始するように指示します。
仮想ResultVoid nlc::blinkProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice &profinetDevice)
validateProfinetDeviceIp () この関数を使用して、デバイスの IP アドレスを確認します。
仮想ResultVoidProfinetDeviceIpを検証します(constBusHardwareId&busHardwareId、constProfinetDevice&profinetDevice)。
パラメータ BusHardwareId ProfinetDevice
チェックするハードウェア ID を指定します。検証する Profinet デバイスを指定します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
43
8 クラス/関数リファレンス
ResultVoid を返します
8.27 ProfinetDevice構造体
Profinet デバイス データには、次のパブリック属性があります。
std::文字列 std::文字列 std::配列< uint8_t, 6 > uint32_t uint32_t uint32_t
デバイス名 デバイスベンダー macAddress ipAddress netMask defaultGateway
MAC アドレスは、macAddress = {xx, xx, xx, xx, xx, xx} という形式の配列として提供されますが、IP アドレス、ネットワーク マスク、ゲートウェイはすべて、次のようにビッグ エンディアンの 16 進数として解釈されます。
IP アドレス: 192.168.0.2 ネットワーク マスク: 255.255.0.0 ゲートウェイ: 192.168.0.1
0xC0A80002 0xFFFF0000 0xC0A80001
8.28 結果クラス
これらのクラスの「オプション」の戻り値を使用して、関数呼び出しが成功したかどうかを確認し、失敗の理由を特定します。成功した場合、hasError() 関数は false を返します。getResult() を使用すると、型 (ResultInt など) ごとに結果値を読み取ることができます。呼び出しが失敗した場合は、getError() によって理由を読み取ります。
保護された属性
文字列 NlcErrorCode uint32_t
errorString errorCode exErrorCode
また、このクラスには次のパブリック メンバー関数があります。
hasError () 関数呼び出しの成功を読み取ります。
bool nlc::Result::hasError() 定数
返品
真偽
呼び出しに失敗しました。値を読み取りするには getError() を使用します。呼び出しは成功しました。値を読み取りするには getResult() を使用します。
getError () 関数呼び出しが失敗した場合にその理由を読み取ります。
const std::string nlc::Result::getError() 定数
定数文字列を返す
バージョン: doc 1.4.2 / NanoLib 1.3.0
44
8 クラス/関数リファレンス
result () 次の関数は正確な結果を定義するのに役立ちます。
結果 (std::string const & errorString_)
結果 (NlcErrorCode const & errCode、std::string const & errorString_)
結果 (NlcErrorCode const & errCode、const uint32_t exErrCode、std::string const & errorString_)
結果 (結果 const & 結果)
getErrorCode () NlcErrorCode を読み取ります。
NlcErrorCode getErrorCode () const
getExErrorCode() uint32_t getExErrorCode() const
8.28.1 結果無効
関数が void を返す場合、NanoLib はこのクラスのインスタンスを送信します。このクラスは結果クラスからパブリック関数と保護された属性を継承し、次のパブリック メンバー関数を持ちます。
ResultVoid () 次の関数は、正確な void 結果の定義に役立ちます。
結果Void (std::string const &errorString_)
ResultVoid (NlcErrorCode const & errCode、std::string const & errorString_)
ResultVoid (NlcErrorCode const & errCode、const uint32_t exErrCode、std:: string const & errorString_)
ResultVoid (結果定数と結果)
8.28.2 結果Int
NanoLib は、関数が整数を返す場合、このクラスのインスタンスを送信します。このクラスは、結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult () 関数呼び出しが成功した場合は整数の結果を返します。
int64_t getResult() 定数
int64_tを返します
バージョン: doc 1.4.2 / NanoLib 1.3.0
45
8 クラス/関数リファレンス
ResultInt () 次の関数は、正確な整数結果の定義に役立ちます。
結果Int (int64_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 (結果定数 & 結果)
8.28.3 結果文字列
NanoLib は、関数が文字列を返す場合、このクラスのインスタンスを送信します。このクラスは、結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult () 関数呼び出しが成功した場合、文字列の結果を読み取ります。
const std::string nlc::ResultString::getResult() 定数
定数文字列を返す
ResultString () 次の関数は、正確な文字列結果の定義に役立ちます。
ResultString (std::string const & message, bool hasError_)
結果文字列 (NlcErrorCode const & errCode、std::string const & errorString_)
ResultString (NlcErrorCode const & errCode、const uint32_t exErrCode、std:: string const & errorString_)
ResultString (結果定数 & 結果)
8.28.4 結果配列バイト
NanoLib は、関数がバイト配列を返す場合、このクラスのインスタンスを送信します。このクラスは、結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult () 関数呼び出しが成功した場合はバイトベクターを読み取ります。
定数std::vector nlc::ResultArrayByte::getResult() 定数
定数ベクトルを返す
バージョン: doc 1.4.2 / NanoLib 1.3.0
46
8 クラス/関数リファレンス
ResultArrayByte () 次の関数は、正確なバイト配列の結果を定義するのに役立ちます。
ResultArrayByte (std::vector定数 & 結果_)
ResultArrayByte (std::string const & errorString_)
ResultArrayByte (NlcErrorCode const & errCode、std::string const & error String_)
ResultArrayByte (NlcErrorCode const & errCode、const uint32_t exErrCode、std:: string const & errorString_)
ResultArrayByte (結果定数 & 結果)
8.28.5 結果配列Int
NanoLib は、関数が整数配列を返す場合、このクラスのインスタンスを送信します。このクラスは、結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult () 関数呼び出しが成功した場合は整数ベクトルを読み取ります。
定数std::vector nlc::ResultArrayInt::getResult() 定数
定数ベクトルを返す
ResultArrayInt () 次の関数は、正確な整数配列の結果を定義するのに役立ちます。
ResultArrayInt (std::vector定数 & 結果_)
ResultArrayInt (std::string const & errorString_)
ResultArrayInt (NlcErrorCode const & errCode、std::string const & error String_)
ResultArrayInt (NlcErrorCode const & errCode、const uint32_t exErrCode、std:: string const & errorString_)
ResultArrayInt (結果定数 & 結果)
8.28.6 結果バスハードウェアID
NanoLib は、関数がバス ハードウェア ID 配列を返す場合、このクラスのインスタンスを送信します。このクラスは、結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult () 関数呼び出しが成功した場合、バス ハードウェア ID ベクトルを読み取ります。
定数std::vector nlc::ResultBusHwIds::getResult() 定数
パラメータconstベクトル
バージョン: doc 1.4.2 / NanoLib 1.3.0
47
8 クラス/関数リファレンス
ResultBusHwIds () 次の関数は、正確なバス ハードウェア ID 配列の結果を定義するのに役立ちます。
結果BusHwIds (std::vector定数 & 結果_)
結果BusHwIds (std::string const & errorString_)
ResultBusHwIds (NlcErrorCode const & errCode、std::string const & errorString_)
ResultBusHwIds (NlcErrorCode const & errCode、const uint32_t exErrCode、std::string const & errorString_)
ResultBusHwIds (結果定数 & 結果)
8.28.7 結果デバイスID
NanoLib は、関数がデバイス ID を返す場合、このクラスのインスタンスを送信します。このクラスは、結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult () 関数呼び出しが成功した場合、デバイス ID ベクトルを読み取ります。
デバイスID nlc::ResultDeviceId::getResult() 定数
定数ベクトルを返す
ResultDeviceId () 次の関数は、正確なデバイス ID 結果の定義に役立ちます。
ResultDeviceId (DeviceId 定数 & result_)
結果デバイス ID (std::string const & errorString_)
ResultDeviceId (NlcErrorCode const & errCode、std::string const & errorString_)
ResultDeviceId (NlcErrorCode const & errCode、const uint32_t exErrCode、std::string errorString_)
ResultDeviceId (結果定数 & 結果)
8.28.8 結果デバイスID
NanoLib は、関数がデバイス ID 配列を返す場合、このクラスのインスタンスを送信します。このクラスは、結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult () 関数呼び出しが成功した場合、デバイス ID ベクトルを返します。
デバイスID nlc::ResultDeviceIds::getResult() 定数
定数ベクトルを返す
バージョン: doc 1.4.2 / NanoLib 1.3.0
48
8 クラス/関数リファレンス
ResultDeviceIds () 次の関数は、正確なデバイス ID 配列の結果を定義するのに役立ちます。
結果デバイスID (std::vector定数 & 結果_)
結果デバイス ID (std::string const & errorString_)
ResultDeviceIds (NlcErrorCode const & errCode、std::string const & errorString_)
ResultDeviceIds (NlcErrorCode const & errCode、const uint32_t exErrCode、std::string const & errorString_)
ResultDeviceIds (結果定数と結果)
8.28.9 結果デバイスハンドル
NanoLib は、関数がデバイス ハンドルの値を返す場合、このクラスのインスタンスを送信します。このクラスは、結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult () 関数呼び出しが成功した場合、デバイス ハンドルを読み取ります。
デバイスハンドル nlc::Resultデバイスハンドル::getResult () 定数
DeviceHandleを返す
ResultDeviceHandle () 次の関数は、正確なデバイス ハンドルの結果を定義するのに役立ちます。
ResultDeviceHandle (DeviceHandle 定数 & result_)
ResultDeviceHandle (std::string const & errorString_)
ResultDeviceHandle (NlcErrorCode const & errCode、std::string const & errorString_)
ResultDeviceHandle (NlcErrorCode const & errCode、const uint32_t exErrCode、std::string const & errorString_)
ResultDeviceHandle (結果定数 & 結果)
8.28.10 結果オブジェクト辞書
NanoLib は、関数がオブジェクト ディクショナリの内容を返す場合、このクラスのインスタンスを送信します。このクラスは、結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult () 関数呼び出しが成功した場合、デバイス ID ベクトルを読み取ります。
定数 nlc::ObjectDictionary & nlc::ResultObjectDictionary::getResult () 定数
バージョン: doc 1.4.2 / NanoLib 1.3.0
49
8 クラス/関数リファレンス
返品
定数ベクトル
ResultObjectDictionary () 次の関数は、正確なオブジェクト辞書の結果を定義するのに役立ちます。
ResultObjectDictionary (nlc::ObjectDictionary const & result_)
ResultObjectDictionary (std::string const & errorString_)
ResultObjectDictionary (NlcErrorCode const & errCode、std::string const & errorString_)
ResultObjectDictionary (NlcErrorCode const & errCode、const uint32_t exErrCode、std::string const & errorString_)
ResultObjectDictionary (結果定数 & 結果)
8.28.11 結果接続状態
NanoLib は、関数がデバイス接続状態情報を返す場合、このクラスのインスタンスを送信します。このクラスは、結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult () 関数呼び出しが成功した場合、デバイス ハンドルを読み取ります。
デバイス接続状態情報 nlc::ResultConnectionState::getResult() 定数
DeviceConnectionStateInfo 接続済み / 切断済み / ConnectedBootloader を返します
ResultConnectionState () 次の関数は、正確な接続状態の結果を定義するのに役立ちます。
結果接続状態 (デバイス接続状態情報 const & result_)
結果接続状態 (std::string const & errorString_)
結果接続状態 (NlcErrorCode const & errCode、std::string const & errorString_)
結果接続状態 (NlcErrorCode const & errCode、const uint32_t exErrCode、std::string const & errorString_)
ResultConnectionState (結果定数と結果)
8.28.12 結果オブジェクトエントリ
NanoLib は、関数がオブジェクト エントリを返す場合にこのクラスのインスタンスを送信します。このクラスは、結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
バージョン: doc 1.4.2 / NanoLib 1.3.0
50
8 クラス/関数リファレンス
getResult () 関数呼び出しが成功した場合、デバイス ID ベクトルを返します。
nlc::ObjectEntry 定数& nlc::ResultObjectEntry::getResult () 定数
const ObjectEntry を返します
ResultObjectEntry () 次の関数は、正確なオブジェクト エントリ結果の定義に役立ちます。
ResultObjectEntry (nlc::ObjectEntry 定数 & result_)
ResultObjectEntry (std::string const & errorString_)
ResultObjectEntry (NlcErrorCode const & errCode、std::string const & errorString_)
ResultObjectEntry (NlcErrorCode const & errCode、const uint32_t exErrCode、std::string const & errorString_)
ResultObjectEntry (結果定数 & 結果)
8.28.13 結果オブジェクトサブエントリ
NanoLib は、関数がオブジェクト サブエントリを返す場合、このクラスのインスタンスを送信します。このクラスは、結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult () 関数呼び出しが成功した場合、デバイス ID ベクトルを返します。
nlc::ObjectSubEntry 定数 & nlc::ResultObjectSubEntry::getResult () 定数
const ObjectSubEntry を返します
ResultObjectSubEntry () 次の関数は、正確なオブジェクト サブエントリの結果を定義するのに役立ちます。
ResultObjectSubEntry (nlc::ObjectEntry 定数 & result_)
ResultObjectSubEntry (std::string const & errorString_)
ResultObjectSubEntry (NlcErrorCode const & errCode、std::string const & errorString_)
ResultObjectSubEntry (NlcErrorCode const & errCode、const uint32_t exErrCode、std::string const & errorString_)
ResultObjectSubEntry (結果定数 & 結果)
8.28.14 結果Profinetデバイス
関数が Profinet デバイスを返す場合、NanoLib はこのクラスのインスタンスを送信します。このクラスは結果クラスからパブリック関数 / 保護属性を継承し、次のパブリック メンバー関数を持ちます。
バージョン: doc 1.4.2 / NanoLib 1.3.0
51
8 クラス/関数リファレンス
getResult () 関数呼び出しが成功した場合、Profinet デバイス ベクトルを読み取ります。
定数std::vector & getResult() 定数
ResultProfinetDevices () 次の関数は、正確な Profinet デバイスの定義に役立ちます。
結果ProfinetDevices (const std::vector & profinetデバイス)
結果ProfinetDevices (const 結果 & 結果)
結果ProfinetDevices (const std::string &errorText、NlcErrorCode errorCode = NlcErrorCode::GeneralError、uint32_t ExtendedErrorCode = 0)
8.28.15 結果ampleDataArray
NanoLibは関数が次のように返した場合、このクラスのインスタンスを送信します。ample データ配列。このクラスは、結果クラスからパブリック関数/保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult () 関数呼び出しが成功した場合にデータ配列を読み取ります。
定数std::vector <SampleData> & getResult() 定数
結果ampleDataArray () 次の関数は、正確な Profinet デバイスの定義に役立ちます。
結果ampleDataArray (const std::vector <SampleData> & データ配列)
結果ampleDataArray (const std::string &errorDesc、const NlcErrorCode errorCode = NlcErrorCode::GeneralError、const uint32_t ExtendedErrorCode = 0)
結果ampleDataArray (const ResultSampleDataArray およびその他)
結果ampleDataArray (const 結果 & 結果)
8.28.16 結果amplerState
NanoLibは関数が次のように返した場合、このクラスのインスタンスを送信します。ampler 状態。このクラスは、結果クラスからパブリック関数/保護属性を継承し、次のパブリック メンバー関数を持ちます。
getResult() sを読み出すamp関数呼び出しが成功した場合の ler 状態ベクトル。
SamplerState getResult() 定数
Sを返しますamplerState>
未構成 / 構成済み / 準備完了 / 実行中 / 完了 / 失敗 / キャンセル
バージョン: doc 1.4.2 / NanoLib 1.3.0
52
8 クラス/関数リファレンス
結果amplerState() 以下の関数は、正確なsを定義するのに役立ちますampler 状態。
結果amplerState (定数SamplerState 状態)
結果amplerState (const std::string & errorDesc、const NlcErrorCode errorCode = NlcErrorCode::GeneralError、const uint32_t
拡張エラーコード = 0)
結果amplerState (const ResultSamplerState およびその他)
結果amplerState (const Result & 結果)
8.29 Nlcエラーコード
何か問題が発生した場合、結果クラスはこの列挙にリストされているエラー コードのいずれかを報告します。
エラーコード 成功 一般エラー バス利用不可 通信エラー プロトコルエラー
ODDoesNotExist ODInvalidAccess ODTypeMismatch OperationAborted OperationNotSupported InvalidOperation
無効な引数 アクセス拒否 リソースが見つかりません リソースが利用できません メモリ不足 タイムアウトエラー
C: カテゴリ D: 説明 R: 理由 C: なし。D: エラーなし。R: 操作は正常に完了しました。
C: 未指定。D: 未指定のエラー。R: 他のカテゴリに当てはまらない障害。
C: バス。D: ハードウェア バスが利用できません。R: バスが存在しない、切断されている、または欠陥があります。
C: 通信。D: 通信が信頼できません。R: 予期しないデータ、間違った CRC、フレームまたはパリティ エラーなど。
C: プロトコル。D: プロトコル エラー。R: サポートされていないプロトコル オプション後の応答、デバイスによるサポートされていないプロトコルの報告、プロトコルのエラー (SDO セグメント同期ビットなど) など。R: サポートされていないプロトコル (オプション) またはプロトコルのエラー (SDO セグメント同期ビットなど) などに対する応答またはデバイス レポート。R: サポートされていないプロトコル (オプション) またはプロトコルのエラー (SDO セグメント同期ビットなど) など。
C: オブジェクト ディクショナリ。D: OD アドレスが存在しません。R: オブジェクト ディクショナリにそのようなアドレスはありません。
C: オブジェクト ディクショナリ。D: OD アドレスへのアクセスが無効です。R: 読み取り専用アドレスへの書き込み、または書き込み専用アドレスからの読み取りを試行しました。
C: オブジェクト ディクショナリ。D: 型の不一致。R: 文字列を数値として扱おうとしたため、値が指定された型に変換されませんでした。
C: アプリケーション。D: プロセスが中止されました。R: アプリケーションの要求によりプロセスが切断されました。バススキャンなどのコールバック関数による操作割り込み時のみ戻ります。
C: 共通。D: プロセスはサポートされていません。R: ハードウェア バス/デバイスはサポートされていません。
C: 共通。D: 現在のコンテキストでプロセスが正しくないか、現在の引数では無効です。R: すでに接続されているバス/デバイスへの再接続試行。すでに切断されているものへの切断試行。ファームウェア モードでのブートローダ操作試行、またはその逆。
C: 一般的。D: 引数が無効。R: ロジックまたは構文が間違っています。
C: 一般的。D: アクセスが拒否されました。R: 要求された操作を実行する権限または機能が不足しています。
C: 共通。D: 指定された項目が見つかりません。R: ハードウェアバス、プロトコル、デバイス、デバイス上のODアドレス、または file 見つかりませんでした。
C: 共通。D: 指定された項目が見つかりません。R: ビジー、存在しない、切断されている、または欠陥。
C: 一般。D: メモリ不足。R: このコマンドを処理するにはメモリが少なすぎます。
C: 共通。D: プロセスがタイムアウトしました。R: タイムアウトが経過した後に戻ります。タイムアウトは、デバイスの応答時間、共有または排他リソース アクセスを取得する時間、またはバス/デバイスを適切な状態に切り替える時間である可能性があります。
バージョン: doc 1.4.2 / NanoLib 1.3.0
53
8 クラス/関数リファレンス
8.30 Nlcコールバック
このコールバックの親クラスには、次のパブリック メンバー関数があります: callback()
仮想ResultVoidコールバック()
返品
結果無効
8.31 Nlcデータ転送コールバック
このコールバッククラスは、データ転送(ファームウェアの更新、NanoJのアップロードなど)に使用します。1. ファームウェアのアップロードの場合: カスタムコールバックメソッドを使用して、これを拡張した「コクラス」を定義します。
実装。2. NanoLibAccessor.uploadFirmware() 呼び出しで「co-class」のインスタンスを使用します。メインクラス自体には、次のパブリックメンバー関数があります。
コールバック () 仮想 ResultVoid コールバック (nlc::DataTransferInfo 情報、int32_t データ)
返品
結果無効
8.32 Nlcスキャンバスコールバック
バス スキャンにはこのコールバック クラスを使用します。1. カスタム コールバック メソッド実装を使用して、これを拡張する「コクラス」を定義します。2. NanoLibAccessor.scanDevices() 呼び出しで「コクラス」のインスタンスを使用します。メイン クラス自体には、次のパブリック メンバー関数があります。
折り返し電話 ()
仮想ResultVoidコールバック(nlc::BusScanInfo情報、std::vector const & devicesFound、int32_t データ)
ResultVoid を返します
8.33 Nlcロギングコールバック
コールバックのログ記録にはこのコールバッククラスを使用します。1. このクラスを拡張してカスタムコールバックメソッドを実装するクラスを定義します。2. NanoLibAccessor によってコールバックを設定するために、そのインスタンスへのポインタを使用します >
setLoggingCallback (…)。
仮想 void コールバック (const std::string & payload_str、const std::string & formatted_str、const std::string & logger_name、const unsigned int log_level、const std::uint64_t time_since_epoch、const size_t thread_id)
8.34年amplerインターフェース
このクラスを使用して、sを構成、開始、停止します。ampler、またはsを取得するampデータを導き、ampler のステータスまたは最後のエラー。このクラスには、次のパブリック メンバー関数があります。
バージョン: doc 1.4.2 / NanoLib 1.3.0
54
8 クラス/関数リファレンス
configure() 次のように設定しますampler。
仮想ResultVoid nlc::SamplerInterface::configure (const DeviceHandle deviceHandle, const SamplerConfiguration & samplerConfiguration)
パラメータ [in] deviceHandle [in] sampler構成
ResultVoid を返します
sを構成するデバイスを指定しますampler for。構成属性の値を指定します。void 関数が実行されたことを確認します。
getData() sを取得するamp導かれたデータ。
仮想結果ampleDataArray nlc::SamplerInterface::getData (const デバイスハンドル デバイスハンドル)
パラメータ [in] deviceHandle 戻り値 ResultSampleDataArray
データを取得するデバイスを指定します。
sをお届けしますampリードデータ、sの場合は空の配列になる場合がありますamplerNotify は起動時にアクティブになります。
getLastError() 取得するamplerの最後のエラー。
仮想ResultVoid nlc::SamplerInterface::getLastError (const デバイスハンドル デバイスハンドル)
ResultVoid を返します
void 関数が実行されたことを確認します。
getState() 取得するamplerのステータス。
仮想結果amplerState nlc::SamplerInterface::getState (const デバイスハンドル デバイスハンドル)
ResultS を返しますamplerState
sをお届けしますampler 状態。
開始 () として開始ampler。
仮想ResultVoid nlc::SamplerInterface::start (const DeviceHandle deviceHandle, SamplerNotify* samplerNotify、int64_t アプリケーションデータ)
パラメータ [in] deviceHandle [in] SamplerNotify [in] applicationData
ResultVoid を返します
sを開始するデバイスを指定しますampler 用。
報告するオプション情報を指定します (nullptr にすることもできます)。
オプション: アプリケーション関連データ(値/デバイスID/インデックスのユーザー定義の8ビット配列、または日付時刻、変数/関数のポインタなど)をsに転送します。amp通知します。
void 関数が実行されたことを確認します。
バージョン: doc 1.4.2 / NanoLib 1.3.0
55
8 クラス/関数リファレンス
stop() として停止しますampler。
仮想ResultVoid nlc::SamplerInterface::stop (const デバイスハンドル デバイスハンドル)
パラメータ [in] deviceHandle 戻り値 ResultVoid
sを停止するデバイスを指定しますampler for。void 関数が実行されたことを確認します。
8.35年amplerConfiguration構造体
この構造体にはデータsが含まれていますampler の構成オプション (静的かどうか)。
パブリック属性
std::ベクター追跡されたアドレス
最大12個のODアドレスをamp導いた。
uint32_t
バージョン
構造のバージョン。
uint32_t
期間ミリ秒
Sampリング期間(ミリ秒単位、1~65535)
uint16_t
期間ミリ秒
Sampling期間(ミリ秒)。
uint16_t
数ampレ
Samp少ない量。
uint16_t
事前トリガー数ampレ
Sampプリトリガー量未満。
ブール
ソフトウェア実装の使用
ソフトウェア実装を使用します。
ブール
新しいFWSの使用amplerImplementation FW実装をデバイスに使用
FWバージョンv24xx以降。
SamplerMode
モード
通常、反復的または継続的なsampリン。
SamplerTriggerCondition トリガー条件
開始トリガー条件: TC_FALSE = 0x00、TC_TRUE = 0x01、TC_SET = 0x10、TC_CLEAR = 0x11、TC_RISING_EDGE = 0x12、TC_FALLING_EDGE = 0x13、TC_BIT_TOGGLE = 0x14、TC_GREATER = 0x15、TC_GREATER_OR_EQUAL = 0x16、TC_LESS = 0x17、TC_LESS_OR_EQUAL = 0x18、TC_EQUAL = 0x19、TC_NOT_EQUAL = 0x1A、TC_ONE_EDGE = 0x1B、TC_MULTI_EDGE = 0x1C、OdIndex、triggerValue
Samplerトリガー
Samplerトリガー
始めるきっかけampラー?
静的パブリック属性
静的constexprsize_tSAMPLER_CONFIGURATION_VERSION = 0x01000000 静的 constexpr size_t MAX_TRACKED_ADDRESSES = 12
8.36年amp通知
このクラスを使用してsをアクティブ化しますamp起動時に通知を受け取るampler。このクラスには次のパブリック メンバー関数があります。
バージョン: doc 1.4.2 / NanoLib 1.3.0
56
8 クラス/関数リファレンス
通知する()
通知エントリを配信します。
仮想void nlc::SamplerNotify::notify (const ResultVoid & lastError, const SamplerState samplerState、const std::vector <SampleData> & sampleDatas、int64_t アプリケーションデータ)
パラメータ [in] lastError [in] samplerState
[in] 秒ampleDatas [in] applicationData
s中に発生した最後のエラーを報告しますampling. sを報告しますamp通知時のステータス: 未構成 / 構成済み / 準備完了 / 実行中 / 完了 / 失敗 / キャンセル。ampled-data 配列。アプリケーション固有のデータを報告します。
8.37年ampleData構造体
この構造体には、amp導かれたデータ。
uin64_t 反復回数
0 から始まり、繰り返しモードでのみ増加します。
std::vector<SampledValues> sの配列が含まれていますamp主導的な価値観。
8.38年ampledValue構造体
この構造体には、amp主導的な価値観。
in64_t 値 uin64_t CollectTimeMsec
追跡された OD アドレスの値が含まれます。
sを基準とした収集時間をミリ秒単位で表します。amp始まりです。
8.39年amplerTrigger構造体
この構造体には、sのトリガー設定が含まれています。ampler。
SamplerTriggerCondition 条件
OdIndex uin32_t 値
トリガー条件:TC_FALSE = 0x00、TC_TRUE = 0x01、TC_SET = 0x10、TC_CLEAR = 0x11、TC_RISING_EDGE = 0x12、TC_FALLING_EDGE = 0x13、TC_BIT_TOGGLE = 0x14、TC_GREATER = 0x15、TC_GREATER_OR_EQUAL = 0x16、TC_LESS = 0x17、TC_LESS_OR_EQUAL = 0x18、TC_EQUAL = 0x19、TC_NOT_EQUAL = 0x1A、TC_ONE_EDGE = 0x1B、TC_MULTI_EDGE = 0x1C
トリガーの OdIndex (アドレス)。
条件値またはビット番号 (ビット 0 から始まる)。
8.40 シリアル構造体
ここで、シリアル通信オプションと次のパブリック属性を見つけます。
const std::string const シリアルボーレート
BAUD_RATE_OPTIONS_NAME = “シリアルボーレート” baudRate =SerialBaudRate 構造体
バージョン: doc 1.4.2 / NanoLib 1.3.0
57
8 クラス/関数リファレンス
const std::string const シリアルパリティ
PARITY_OPTIONS_NAME = “シリアルパリティ” parity = SerialParity 構造体
8.41 SerialBaudRate構造体
ここで、シリアル通信のボーレートと次のパブリック属性を見つけます。
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
BAUD_RATE_7200 = “7200” BAUD_RATE_9600 = “9600” BAUD_RATE_14400 = “14400” BAUD_RATE_19200 = “19200” BAUD_RATE_38400 = “38400” BAUD_RATE_56000 = “56000” BAUD_RATE_57600 = “57600” BAUD_RATE_115200 = “115200” BAUD_RATE_128000 = “128000” BAUD_RATE_256000 = “256000”
8.42 シリアルパリティ構造体
ここで、シリアル パリティ オプションと次のパブリック属性を見つけます。
const std::string const std::string const std::string const std::string const std::string
NONE = “なし” ODD = “奇数” EVEN = “偶数” MARK = “マーク” SPACE = “スペース”
バージョン: doc 1.4.2 / NanoLib 1.3.0
58
9ライセンス
9ライセンス
NanoLib APIインターフェースヘッダーとexampソースコードは、Creative Commons Attribution 3.0 Unported License (CC BY) に基づいて Nanotec Electronic GmbH & Co. KG によってライセンスされています。バイナリ形式で提供されるライブラリ パーツ (コアおよびフィールドバス通信ライブラリ) は、Creative Commons AttributionNoDerivatives 4.0 International License (CC BY ND) に基づいてライセンスされています。
クリエイティブ・コモンズ
以下の人間が読める要約は、ライセンス自体を置き換えるものではありません。それぞれのライセンスは creativecommons.org で見つけることができ、以下のリンクからアクセスできます。次のことは自由に行うことができます。
CC BY 3.0
共有: 右を参照してください。適応: リミックス、変換、構築
商業目的であっても、いかなる目的にも使用できません。
CC BY-ND 4.0
共有: あらゆる媒体や形式で資料をコピーおよび再配布できます。
以下のライセンス条件に従う限り、ライセンサーは上記の自由を取り消すことはできません。
CC BY 3.0
CC BY-ND 4.0
帰属: 適切なクレジットを付与する必要があります。帰属: 左を参照してください。ただし: このリンクを提供してください。
ライセンスへのリンクを提供し、
その他のライセンス。
変更が行われました。いつでも変更することができます
派生作品は禁止:リミックス、変形、構築する場合
合理的な方法で、しかし決して示唆するような方法ではない。
素材に基づいて配布することはできません
ライセンサーがあなたまたはあなたの使用を承認することを示します。
修正された材料。
追加の制限なし: 適用できません。追加の制限なし: 左を参照してください。法的に認められている法的条件または技術的手段
他人がライセンスに従って何もできないように制限する
許可します。
注: パブリック ドメインにある素材の要素、または適用可能な例外や制限によって使用が許可されている素材の要素については、ライセンスに従う必要はありません。
注: 保証はありません。ライセンスでは、意図した使用に必要なすべての権限が付与されない場合があります。例:ampただし、パブリシティ権、プライバシー権、著作者人格権などのその他の権利により、資料の使用方法が制限される場合があります。
バージョン: doc 1.4.2 / NanoLib 1.3.0
59
印刷物、連絡先、バージョン
©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 すべての権利を留保します。誤記、省略、技術または内容の変更は予告なく行われる可能性があります。引用されているブランド/製品は各所有者の商標であり、そのように扱われます。オリジナル バージョン。
ドキュメント 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
+ 追加 > 変更 # 修正 > 提供されたexの再作業ampレ。
+ NanoLib Modbus: Modbus VCP のデバイス ロック メカニズムを追加しました。# NanoLib Core: 接続状態チェックを修正しました。# NanoLib Code: バス ハードウェア参照の削除を修正しました。
+ NanoLib-CANopen: Peak PCAN-USB アダプター (IPEH-002021/002022) のサポート。
> NanoLib Core: ログ記録コールバック インターフェイスを変更しました (LogLevel が LogModule に置き換えられました)。# NanoLib Logger: コアとモジュールの分離が修正されました。# Modbus TCP: FW4 のファームウェア更新を修正しました。# EtherCAT: Core5 の NanoJ プログラムのアップロードを修正しました。# EtherCAT: Core5 のファームウェア更新を修正しました。
# Modbus RTU: ファームウェア更新中の低ボーレートによるタイミングの問題を修正しました。# RESTful: NanoJ プログラムのアップロードを修正しました。
# NanoLib モジュール Sampler: sの正しい読み方ampブール値を導きました。
+ すべてのプラットフォームでJava 11をサポート。 + すべてのプラットフォームでPython 3.11/3.12をサポート。 + 新しいログコールバックインターフェース(例を参照)amples)。+ NanoLib Logger のコールバックシンク。 > ロガーをバージョン 1.12.0 に更新します。 > NanoLib モジュール Sampler: Nanotec コントローラーファームウェア v24xx のサポートを開始しました。 > NanoLib モジュール Sampler: sに使用される構造の変更ampler 構成。 > NanoLib モジュール Sampler: 連続モードはエンドレスと同義です。トリガー条件は1回チェックされます。amples は 0 でなければなりません。 > NanoLib モジュール Sampler: ファームウェアモードでデータを収集するスレッドの通常の優先度。 > NanoLib モジュール Sampler: 準備完了状態と実行状態間の遷移を検出するアルゴリズムを書き直しました。 # NanoLib Core: 同じバス ハードウェアを使用して 0 つ以上のデバイスを閉じるときにアクセス違反 (0000005xC2) が発生しなくなりました。 # NanoLib Core: Linux で PEAK アダプターを接続するときにセグメンテーション違反が発生しなくなりました。 # NanoLib モジュール Sampler: 正しいsampファームウェアモードでの LED 値の読み取り。# NanoLib モジュール Sampler: 502X:04 の正しい構成。# NanoLib モジュール Sampler: バッファとチャネルの混合を修正しました。# NanoLib-Canopen: 堅牢性を高め、低ボーレートでのスキャンを正しく行うために、CAN タイムアウトを増加しました。# NanoLib-Modbus: 特殊デバイス (USB-DA-IO) 用の VCP 検出アルゴリズム。
+ EtherCAT サポート。
+ プロジェクトの構成における VS プロジェクト設定に関する注意事項。
+ getDeviceHardwareGroup()。+ getProfinetDCP(isServiceAvailable)。+ getProfinetDCP(validateProfinetDeviceIp)。+ autoAssignObjectDictionary()。+ getXmlFile名前 (). + const std::string & xmlFileaddObjectDictionary() のパス。+ getSamplerInterface()。
商品 1.3.0 1.2.1 1.2.0 1.1.3
1.1.2 1.1.1 1.1.0
1.0.1 (B349) 1.0.0 (B344) 1.0.0 (B341)
バージョン: doc 1.4.2 / NanoLib 1.3.0
60
10 印刷物、連絡先、バージョン
書類
1.1.2 2022.03 1.1.1 2021.11 1.1.0 2021.06 1.0.1 2021.06 1.0.0 2021.05
+ 追加 > 変更 # 修正 + rebootDevice()。+ getDeviceBootloaderVersion()、~VendorId()、~HardwareVersion()、~SerialNumber、および ~Uid のエラー コード ResourceUnavailable。>firmwareUploadFromFile 今すぐアップロードファームウェアFile (). >firmwareUpload () で uploadFirmware (). >bootloaderUploadFromFile ()今uploadBootloaderFromFile (). > bootloaderUpload () で、今度は uploadBootloader () に変更します。 > bootloaderFirmwareUploadFromFile () を使ってBootloaderFirmwareをアップロードするFile (). > bootloaderFirmwareUpload () で、今度は uploadBootloaderFirmware (). > nanojUploadFromFile ()今すぐアップロードNanoJFromFile ()。 > nanojUpload () が uploadNanoJ () になりました。 > objectDictionaryLibrary () が getObjectDictionaryLibrary () になりました。 > String_String_Map が StringStringMap になりました。 > NanoLib-Common: Ixxat アダプターを使用した listAvailableBusHardware および openBusHardwareWithProtocol の実行が高速化されました。 > NanoLib-CANopen: バス ハードウェア オプションが空の場合、デフォルト設定 (1000k ボーレート、Ixxat バス番号 0) が使用されます。 > NanoLib-RESTful: npcap / winpcap ドライバーが使用可能な場合、Windows での Ethernet ブートローダーとの通信に対する管理者権限は廃止されました。 # NanoLib-CANopen: バス ハードウェアが空のオプションでクラッシュせずに開くようになりました。 # NanoLib-Common: openBusHardwareWithProtocol () でメモリ リークが発生しなくなりました。
+ Linux ARM64 のサポート。+ USB マス ストレージ / REST / Profinet DCP のサポート。+ checkConnectionState()。+ getDeviceBootloaderVersion()。+ ResultProfinetDevices。+ NlcErrorCode (NanotecExceptions に置き換えられました)。+ NanoLib Modbus: VCP / USB ハブが USB に統合されました。> Modbus TCP スキャンは結果を返します。< Modbus TCP 通信の遅延は一定のままです。
+ その他のObjectEntryDataType(複雑でプロフェッショナルなfile-固有)。+ connectDevice() および scanDevices() で何も見つからない場合は、IOError が返されます。+ CanOpen / Modbus の公称タイムアウトは 100 ミリ秒のみです。
+ Modbus サポート (および VCP 経由の USB ハブ)。+ 独自の Linux プロジェクトを作成する章。+ BusHardwareId () への extraHardwareSpecifier。+ DeviceId () への extraId_ および extraStringId_。
+ setBusState()。+ getDeviceBootloaderBuildId()。+ getDeviceFirmwareBuildId()。+ getDeviceHardwareVersion()。# バグ修正。
版。
製品
0.8.0 0.7.1 0.7.0 0.5.1 0.5.1
バージョン: doc 1.4.2 / NanoLib 1.3.0
61
ドキュメント / リソース
![]() |
Nanotic NanoLib C++ プログラミング [pdf] ユーザーマニュアル NanoLib C プログラミング、C プログラミング、プログラミング |