24: 2013-09-12 (木) 18:23:23 takaboo | 25: 2013-09-15 (日) 16:55:09 takaboo | ||
---|---|---|---|
Line 4: | Line 4: | ||
従来はユーザ自らシリアル通信に関するAPIを使用してタイミングやエラー処理を加えて利用するものでしたが、本APIを介する事でシリアル通信である事をほとんど意識すること無くアプリケーションの作りこみに専念することができるはずです。 | 従来はユーザ自らシリアル通信に関するAPIを使用してタイミングやエラー処理を加えて利用するものでしたが、本APIを介する事でシリアル通信である事をほとんど意識すること無くアプリケーションの作りこみに専念することができるはずです。 | ||
- | なお、PCと[[BTE061D]]・[[BTE068]]・[[BTE082]]・[[BTE083]]のいずれかがUSBケーブルで接続され、PC上にWindowsのデバイスとして仮想COMポートが増設された状態で使用するものとします。 | + | なお、PCと[[BTE061D]]・[[BTE061E]]・[[BTE068]]・[[BTE068B]]・[[BTE082]]・[[BTE083]]のいずれかがUSBケーブルで接続され、PC上にWindowsのデバイスとして仮想COMポートが増設された状態で使用するものとします。 |
**ライブラリおよびサンプルプログラムのダウンロード [#j8bd290f] | **ライブラリおよびサンプルプログラムのダウンロード [#j8bd290f] | ||
以下のリンクよりライブラリ及びサンプルプログラムをアーカイブしたファイルがダウンロードできます。 | 以下のリンクよりライブラリ及びサンプルプログラムをアーカイブしたファイルがダウンロードできます。 | ||
- | -''2013/09/ Ver.2.9''~ | + | -''2013/09/15 Ver.2.9''~ |
#ref(http://www.besttechnology.co.jp/download/DXLIBforWin2.9.zip) | #ref(http://www.besttechnology.co.jp/download/DXLIBforWin2.9.zip) | ||
内容 | 内容 | ||
Line 110: | Line 110: | ||
|~|~|dxlib_x32.dll |DXLIBフォルダに収録されるものと同一 | | |~|~|dxlib_x32.dll |DXLIBフォルダに収録されるものと同一 | | ||
|~|~|dxlib_x64.dll |~| | |~|~|dxlib_x64.dll |~| | ||
- | |~|LabVIEW2010|sample.vi |サンプル | | + | |~|LabVIEW2011|sample.vi |サンプル | |
|~|~|sample_mx.vi |~| | |~|~|sample_mx.vi |~| | ||
|~|~|synctest.vi |~| | |~|~|synctest.vi |~| | ||
Line 188: | Line 188: | ||
***National Instruments LabVIEW [#mdd5d507] | ***National Instruments LabVIEW [#mdd5d507] | ||
- | 'SampleCode\LabVIEW2010'フォルダにサンプルが同梱されます。ポート・ボーレート・ID等は使用する環境に合わせて適宜修正して使用します。~ | + | 'SampleCode\LabVIEW2011'フォルダにサンプルが同梱されます。ポート・ボーレート・ID等は使用する環境に合わせて適宜修正して使用します。~ |
- | [[LabVIEW2010:http://www.ni.com/labview/ja/]]には外部のDLLへアクセスする手段が提供されています。しかしながらDXLIBそのままの定義ではLabVIEWからは使いづらいため、サンプルプログラムではサブviでラッピングしてDXLIB.llbにまとめて提供しています。 | + | [[LabVIEW:http://www.ni.com/labview/ja/]]には外部のDLLへアクセスする手段が提供されています。しかしながらDXLIBそのままの定義ではLabVIEWからは使いづらいため、サンプルプログラムではサブviでラッピングしてDXLIB.llbにまとめて提供しています。 |
#ref(vi_frontpanel.png) | #ref(vi_frontpanel.png) | ||
#ref(vi_diagram.png) | #ref(vi_diagram.png) | ||
Line 256: | Line 256: | ||
ライブラリは必要に合わせて追加する。~ | ライブラリは必要に合わせて追加する。~ | ||
gcc sample.c dxlib.o -o sample | gcc sample.c dxlib.o -o sample | ||
+ | |||
+ | なお、コンパイルや実行にあたってI/Fやカーネル・ディストリビューションに依存するのがLinuxですので、そのまま使用できない場合は適宜ソースを修正下さい。 | ||
**API [#ybae1454] | **API [#ybae1454] | ||
Line 262: | Line 264: | ||
***DX_OpenPort [#zbd2f6ef] | ***DX_OpenPort [#zbd2f6ef] | ||
- | ライブラリの内部情報を初期化すると同時に指定されたCOMポートをオープンし、ユニークな[[TDeviceID>#TDeviceID]]を返す。以後はこの[[TDeviceID>#TDeviceID]]を使用して各APIを使用する。~ | + | ライブラリの内部情報を初期化すると同時に指定されたCOMポートをオープンし、[[DX_SetBaudrate>#ba9f52b8]]を使用して通信速度を設定した後、ユニークな[[TDeviceID>#TDeviceID]]を返す。以後はこの[[TDeviceID>#TDeviceID]]を使用して各APIを使用する。~ |
- | 複数のCOMポートを使用する場合は、使用するポート毎にDX_OpenPortを行い[[TDeviceID>#TDeviceID]]を取得しなくてはならない。 | + | 複数のCOMポートを使用する場合は、使用するポート毎にDX_OpenPortを行い[[TDeviceID>#TDeviceID]]を取得しなくてはならない。~ |
+ | なお、Linuxにおけるボーレートの指定に関しては、[[DX_SetBaudrate>#ba9f52b8]]の解説に注意の事。 | ||
TDeviceID DX_OpenPort (char *name, uint32_t baud); | TDeviceID DX_OpenPort (char *name, uint32_t baud); | ||
-パラメータ | -パラメータ | ||
Line 301: | Line 304: | ||
***DX_SetBaudrate [#ba9f52b8] | ***DX_SetBaudrate [#ba9f52b8] | ||
既にオープンされている[[TDeviceID>#TDeviceID]]の通信速度の変更を行う。~ | 既にオープンされている[[TDeviceID>#TDeviceID]]の通信速度の変更を行う。~ | ||
- | 実行すると強制的に受信バッファがクリアされる。 | + | 実行すると強制的に受信バッファがクリアされる。~ |
+ | なお、Linux環境におけるボーレートの設定は、POSIX.1でサポートする値(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 3500000, 4000000)であればtcsetattrを使用して処理するが、これらの値に当てはまらない場合はioctrlを使用する。その際I/Fがこれらのボーレートに対応していなかったり、ioctrlをサポートしない場合、本APIは失敗する。 | ||
bool DX_ChangeBaudrate (TDeviceID dvid, long baud); | bool DX_ChangeBaudrate (TDeviceID dvid, long baud); | ||
-パラメータ | -パラメータ | ||
Line 690: | Line 694: | ||
***DX_RxPacket [#r280cda8] | ***DX_RxPacket [#r280cda8] | ||
ステータスパケットを受信する。~ | ステータスパケットを受信する。~ | ||
- | 基本的にDX_TxPacketとペアで使用する。ステータスパケットが得られない状況で使用するとタイムアウトするまで返らない。 | + | 基本的にDX_TxPacketとペアで使用する。ステータスパケットが得られない状況で使用するとタイムアウトするまで返らない。~ |
+ | なお、本APIは[[DX_SetTimeOutOffset>#h4a1b54e]]で設定されたオフセット値は使用せず、引数で指定された受信タイムアウトのみが適用される。 | ||
bool DX_RxPacket (TDeviceID dvid, uint8_t *rdata, uint32_t rdatasize, uint32_t *rlen, uint32_t timeout, TErrorCode *err); | bool DX_RxPacket (TDeviceID dvid, uint8_t *rdata, uint32_t rdatasize, uint32_t *rlen, uint32_t timeout, TErrorCode *err); | ||
-パラメータ | -パラメータ |