40: 2017-12-17 (Sun) 21:28:48 takaboo source Cur: 2019-03-27 (Wed) 15:58:32 takaboo source
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]]・[[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/03/27 Ver.4.2''~ 
 +#ref(http://www.besttechnology.co.jp/dow​nload/DXLIB_V4.2.zip) 
 +内容 
 +--追加APIの正式リリース 
 +--C言語による追加APIのサンプルプログラムを拡充 
 +--Pythonによるサンプルプログラムを拡充 
 +-2016/07/13 Ver.3.3~
#ref(http://www.besttechnology.co.jp/dow​nload/DXLIB_V3.3.zip) #ref(http://www.besttechnology.co.jp/dow​nload/DXLIB_V3.3.zip)
内容 内容
Line 113: Line 119:
|~|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 134:
|~|~|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 142:
|~|~|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 251:
***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 282:
+コンパイル準備~ +コンパイル準備~
ダウンロードファイルを解凍~ ダウンロードファイルを解凍~
-+オブジェクトファイルの作成++ライブラリファイルの生成
-  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ですので、そのまま使用できない場合は適宜ソースを修正下さい。
Line 775: Line 768:
 #define _POS1 (400)  #define _POS1 (400)
 #define _POS2 (511)  #define _POS2 (511)
 + 
 TDeviceID  dev;  TDeviceID  dev;
 TErrorCode err;  TErrorCode err;
Line 790: Line 783:
   _POS2 >> 8    _POS2 >> 8
 };  };
 + 
 dev = DX_OpenPort ("\\\\.\\COM10", 1000000);  dev = DX_OpenPort ("\\\\.\\COM10", 1000000);
 if (dev) {  if (dev) {
Line 860: Line 853:
   1,    // サイズ    1,    // サイズ
 };  };
 + 
 dev = DX_OpenPort ("\\\\.\\COM10", 1000000);  dev = DX_OpenPort ("\\\\.\\COM10", 1000000);
 if (dev) {  if (dev) {


Front page   Diff ReloadPrint View   Page list Search Recent changes   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)