40: 2017-12-17 (日) 21:28:48 takaboo[6] [7] | 41: 2019-03-27 (水) 15:58:32 takaboo[6] [8] | ||
---|---|---|---|
Line 4: | Line 4: | ||
シリアル通信に関するAPI、タイミングやエラー処理、プロトコルの整合性チェック等を本ライブラリ内で行っているため、シリアル通信である事をほとんど意識すること無くアプリケーションの作りこみに専念することができます。 | シリアル通信に関するAPI、タイミングやエラー処理、プロトコルの整合性チェック等を本ライブラリ内で行っているため、シリアル通信である事をほとんど意識すること無くアプリケーションの作りこみに専念することができます。 | ||
- | なお、PCと[[BTE061D]]・[[BTE061E]]・[[BTE068]]・[[BTE068B]]・[[BTE082]]・[[BTE083]]・[[BTE074]]・[[BTE079]]・[[BTE080]]・[[BTE079B]]・[[BTE080B]]のいずれかがUSBポートに接続され、PCのOSに仮想COMポートが増設された状態で使用するものとします。 | + | なお、PCと[[BTE061D]]・[[BTE061E]]・[[BTE068]]・[[BTE068B]]・[[BTE068C]]・[[BTE082]]・[[BTE083]]・[[BTE074]]・[[BTE079]]・[[BTE080]]・[[BTE079B]]・[[BTE080B]]・[[BTX229>http://emanual.robotis.com/docs/en/parts/interface/u2d2/]]のいずれかがUSBポートに接続され、PCのOSに仮想COMポートが増設された状態で使用するものとします。 |
**ライブラリおよびサンプルプログラムのダウンロード [#j8bd290f] | **ライブラリおよびサンプルプログラムのダウンロード [#j8bd290f] | ||
以下のリンクよりライブラリ及びサンプルプログラムをアーカイブしたファイルがダウンロードできます。 | 以下のリンクよりライブラリ及びサンプルプログラムをアーカイブしたファイルがダウンロードできます。 | ||
- | -''2016/07/13 Ver.3.3''~ | + | -''2019/11/?? Ver.4.3''~ |
+ | #ref(http://www.besttechnology.co.jp/download/DXLIB_V4.3.zip) | ||
+ | 内容 | ||
+ | --Visual Studio上での動作検証を行いヘッダを一部修正 | ||
+ | --エンコードをUTF-8のBOM付きに統一 | ||
+ | --新しく追加されたDynamixelの定義を追加 | ||
+ | -2019/03/27 Ver.4.2~ | ||
+ | #ref(http://www.besttechnology.co.jp/download/DXLIB_V4.2.zip) | ||
+ | 内容 | ||
+ | --追加APIの正式リリース | ||
+ | --C言語による追加APIのサンプルプログラムを拡充 | ||
+ | --Pythonによるサンプルプログラムを拡充 | ||
+ | -2016/07/13 Ver.3.3~ | ||
#ref(http://www.besttechnology.co.jp/download/DXLIB_V3.3.zip) | #ref(http://www.besttechnology.co.jp/download/DXLIB_V3.3.zip) | ||
内容 | 内容 | ||
Line 113: | Line 125: | ||
|~|dxlib.h|<|ライブラリヘッダ | | |~|dxlib.h|<|ライブラリヘッダ | | ||
|~|dxlib_matlab.h|<|matlab用ヘッダ | | |~|dxlib_matlab.h|<|matlab用ヘッダ | | ||
+ | |~|dxlib.py|<|python用API定義 | | ||
|~|dxmemmap.h|<|DX/AX/RX/EX/MXシリーズ用コントロールテーブル定義ヘッダ | | |~|dxmemmap.h|<|DX/AX/RX/EX/MXシリーズ用コントロールテーブル定義ヘッダ | | ||
|~|makelib.bat|<|ライブラリ再構築用バッチ | | |~|makelib.bat|<|ライブラリ再構築用バッチ | | ||
|~|83.bat|<|~| | |~|83.bat|<|~| | ||
- | |SampleCode|GCCDeveloperLite|smpl1(template).c |サンプル | | + | |SampleCode|GCCDeveloperLite|smpl*.c |サンプル | |
- | |~|~|smpl2(ping).c |~| | + | |
- | |~|~|smpl3(byte_rw).c |~| | + | |
- | |~|~|smpl4(word_rw).c |~| | + | |
- | |~|~|smpl5(multithread).c |~| | + | |
- | |~|~|smpl6(sync).c |~| | + | |
- | |~|~|smpl7(rawpacket).c |~| | + | |
- | |~|~|smpl8(dualport).c |~| | + | |
- | |~|~|smpl9(DynamicLoad).c |~| | + | |
- | |~|~|smpl10(USS3).c |~| | + | |
|~|~|dxlib.h |DXLIBフォルダに収録されるものと同一 | | |~|~|dxlib.h |DXLIBフォルダに収録されるものと同一 | | ||
|~|~|dxmemmap.h |~| | |~|~|dxmemmap.h |~| | ||
Line 136: | Line 140: | ||
|~|~|dxlib_x32.dll |DXLIBフォルダに収録されるものと同一 | | |~|~|dxlib_x32.dll |DXLIBフォルダに収録されるものと同一 | | ||
|~|~|dxlib_x64.dll |~| | |~|~|dxlib_x64.dll |~| | ||
- | |~|LabVIEW2011|sample1.vi |サンプル | | + | |~|LabVIEW2011|sample*.vi |サンプル | |
- | |~|~|sample2.vi |~| | + | |
- | |~|~|sample3.vi |~| | + | |
- | |~|~|sample4.vi |~| | + | |
- | |~|~|sample5.vi |~| | + | |
- | |~|~|sample6.vi |~| | + | |
- | |~|~|WaveForm.vi |サブvi | | + | |
|~|~|DXLIB.llb |dllの呼び出しをvi化 | | |~|~|DXLIB.llb |dllの呼び出しをvi化 | | ||
+ | |~|~|DXLIB_DXL.llb |dllの呼び出しをvi化 | | ||
|~|~|DXLIB_Wrapper.llb |アクチュエータに特化したvi | | |~|~|DXLIB_Wrapper.llb |アクチュエータに特化したvi | | ||
|~|~|dxlib_x32.dll |DXLIBフォルダに収録されるものと同一 | | |~|~|dxlib_x32.dll |DXLIBフォルダに収録されるものと同一 | | ||
Line 149: | Line 148: | ||
|~|~|dxlib_x32.dll |DXLIBフォルダに収録されるものと同一 | | |~|~|dxlib_x32.dll |DXLIBフォルダに収録されるものと同一 | | ||
|~|~|dxlib_x64.dll |~| | |~|~|dxlib_x64.dll |~| | ||
- | |~|Linux|smpl2.c |サンプル | | + | |~|Linux|smpl*.c |サンプル | |
- | |~|~|smpl4.c |~| | + | |~|Ruby|smpl*.rb |サンプル | |
- | |~|Ruby|SMPL1.c |サンプル | | + | |~|Python|smpl*.py |サンプル | |
- | |~|~|SMPL3.c |~| | + | |~|~|dxlib.py |DXLIBフォルダに収録されるものと同一| |
- | |~|Python|SMPL1.py |サンプル | | + | |~|~|dxlib_x32.dll |~| |
- | |~|~|SMPL3.py |~| | + | |~|~|dxlib_x64.dll |~| |
**開発環境毎の設定 [#u3ff03d9] | **開発環境毎の設定 [#u3ff03d9] | ||
Line 258: | Line 257: | ||
***Python [#mc6a5a49] | ***Python [#mc6a5a49] | ||
- | 'SampleCode\Ruby'フォルダにサンプルが同梱されます。ポート・ボーレート・ID等は使用する環境に合わせて適宜修正して使用します。~ | + | 'SampleCode\Python'フォルダにサンプルが同梱されます。ポート・ボーレート・ID等は使用する環境に合わせて適宜修正して使用します。~ |
[[Python:http://www.python.jp/]]はオープンソースの動的なプログラミング言語で、外部のDLLへ簡易にアクセスすることが出来ます。~ | [[Python:http://www.python.jp/]]はオープンソースの動的なプログラミング言語で、外部のDLLへ簡易にアクセスすることが出来ます。~ | ||
- | LinuxでLoadLibraryを呼び出す際はcdllインスタンスを使用します。 | + | 各APIのPython用の宣言を定義したdxlib.pyをimportするだけで済みます。 |
- | dxlib = windll.LoadLibrary( "dxlib_x32.dll" ) # for window | + | from dxlib import * # dxlibをインポート |
- | dxlib = cdll.LoadLibrary( "./dxlib.so" ) # for linux | + | |
***Java [#ceff395d] | ***Java [#ceff395d] | ||
Line 290: | Line 288: | ||
+コンパイル準備~ | +コンパイル準備~ | ||
ダウンロードファイルを解凍~ | ダウンロードファイルを解凍~ | ||
- | +オブジェクトファイルの作成~ | + | +ライブラリファイルの生成~ |
- | gcc dxlib.cpp -o dxlib.o | + | $ gcc -c -D__MAKE_LIB__ dxlib_intuitive.cpp dxlib.cpp |
+ | $ ar -rcsv libdxlib.a dxlib_intuitive.o dxlib.o | ||
+共有ライブラリの作成~ | +共有ライブラリの作成~ | ||
- | RubyやPython等で使用する場合のみ。~ | + | RubyやPython等で使用する場合等~ |
- | gcc -fPIC -shared dxlib.cpp -o dxlib.so | + | $ gcc -fPIC -shared -D__MAKE_LIB__ dxlib_intuitive.cpp dxlib.cpp -o dxlib.so.4.2 |
- | +コンパイル~ | + | +ユーザプログラムとのリンク~ |
- | dxlibのオブジェクトファイルとC言語ソースを合わせてコンパイルする。~ | + | 生成したライブラリファイルと自身のソースをリンクする。~ |
ポート・ボーレート等は使用する環境に合わせて適宜追加・修正する。~ | ポート・ボーレート等は使用する環境に合わせて適宜追加・修正する。~ | ||
ライブラリは必要に合わせて追加する。~ | ライブラリは必要に合わせて追加する。~ | ||
- | gcc sample.c dxlib.o -o sample | + | $ gcc sample.c -ldxlib -o sample |
なお、コンパイルや実行にあたってI/Fやカーネル・ディストリビューションに依存するのがLinuxですので、そのまま使用できない場合は適宜ソースを修正下さい。 | なお、コンパイルや実行にあたってI/Fやカーネル・ディストリビューションに依存するのがLinuxですので、そのまま使用できない場合は適宜ソースを修正下さい。 |
(This host) = http://www.besttechnology.co.jp