26: 2013-09-16 (月) 00:14:28 takaboo |
27: 2013-10-10 (木) 03:37:42 takaboo |
| **ライブラリおよびサンプルプログラムのダウンロード [#j8bd290f] | | **ライブラリおよびサンプルプログラムのダウンロード [#j8bd290f] |
| 以下のリンクよりライブラリ及びサンプルプログラムをアーカイブしたファイルがダウンロードできます。 | | 以下のリンクよりライブラリ及びサンプルプログラムをアーカイブしたファイルがダウンロードできます。 |
- | -''2013/09/15 Ver.2.9''~ | + | -''2013/10/10 Ver.2.9.1''~ |
| + | #ref(http://www.besttechnology.co.jp/download/DXLIBforWin2.9.1.zip) |
| + | 内容 |
| + | --DX_SetTimeOutOffsetでオフセットタイムを指定していない場合のデフォルト値が0ではタイムアウトが生じやすいため20に変更 |
| + | --DX_Ping2の検索最大数を254に修正 |
| + | --DXLIB.pasに追加したDX_SetTimeOutOffsetの定義ミスを修正 |
| + | -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) |
| 内容 | | 内容 |
| ***VB [#p8d7963b] | | ***VB [#p8d7963b] |
| 'SampleCode\EXCEL'フォルダにサンプルが同梱されます。~ | | 'SampleCode\EXCEL'フォルダにサンプルが同梱されます。~ |
- | ここではVBと似たMicrosoft OfficeのVBAを使用し、マクロの標準モジュールにDXLIB2HEADという名称でDLLに含まれるいくつかのAPIを定義しました。~ | + | ここではVBと似たMicrosoft OfficeのVBAを使用し、マクロの標準モジュールにDXLIB2HEADという名称でDLLに含まれるいくつかのAPIが定義してあります。~ |
- | Module1にPingTestとMotorTestというマクロを記述しましたので、ワークシートから適宜マクロを呼び出して実行してください。結果がシート上に反映されます。 | + | Module1にPingTestとMotorTestというマクロが記述されていますので、ワークシートから適宜マクロを呼び出して実行してください。結果がシート上に反映されます。 |
| | | |
| ***Ruby [#r63b1e3e] | | ***Ruby [#r63b1e3e] |
| [[MATLAB:http://www.mathworks.co.jp/products/matlab]]からの使用例を紹介します。ポート・ボーレート・ID等は使用する環境に合わせて適宜修正して下さい。~ | | [[MATLAB:http://www.mathworks.co.jp/products/matlab]]からの使用例を紹介します。ポート・ボーレート・ID等は使用する環境に合わせて適宜修正して下さい。~ |
| +事前準備 | | +事前準備 |
- | ~まずはMATLAB起動後、「ファイル(F)」→「パス設定(H)」でdxlib_x32.dllとdxlib_matlab.hの格納されたパスを指定します。dxlib.hはMATLABでは解釈できない記述が多いため使用しないでください。 | + | ~まずはMATLAB起動後、「ファイル(F)」→「パス設定(H)」でdxlib_x32.dll(MATALBが64bitの場合はdxlib_x64.dll)とdxlib_matlab.hの格納されたパスを指定します。dxlib.hはMATLABでは解釈できない記述が多いため使用しないでください。~ |
| +DLLのロード | | +DLLのロード |
| loadlibrary('dxlib_x32.dll','dxlib_matlab.h','alias','dxlib') | | loadlibrary('dxlib_x32.dll','dxlib_matlab.h','alias','dxlib') |
| ~TErrorCodeはポインタで引き渡しているため、事前に型宣言をしておきます。値はErr.Valueで取得可能です。必要なければ0を指定しても構いません。 | | ~TErrorCodeはポインタで引き渡しているため、事前に型宣言をしておきます。値はErr.Valueで取得可能です。必要なければ0を指定しても構いません。 |
| Err = libpointer('uint16Ptr', 0); | | Err = libpointer('uint16Ptr', 0); |
- | Ret = calllib('dxlib', 'DX_Ping', devid, 1, 10, Err); | + | Ret = calllib('dxlib', 'DX_Ping', devid, 1, Err); |
| fprintf('%x', Err.Value); | | fprintf('%x', Err.Value); |
| +ポートのクローズ | | +ポートのクローズ |
| ~DX_OpenPortで開いた際の[[TDeviceID>#TDeviceID]]。 | | ~DX_OpenPortで開いた際の[[TDeviceID>#TDeviceID]]。 |
| --uint8_t '''id''' | | --uint8_t '''id''' |
- | ~対象とするID (0~253)。 | + | ~対象とするID (0~254)。 |
| --[[TErrorCode>#TErrorCode]] '''*err''' | | --[[TErrorCode>#TErrorCode]] '''*err''' |
| ~エラーコード。 | | ~エラーコード。 |
| ***DX_Ping2 [#g16504b3] | | ***DX_Ping2 [#g16504b3] |
| PINGインストラクションでBROADCASTING IDを指定して不特定の対象の応答を確認する。~ | | PINGインストラクションでBROADCASTING IDを指定して不特定の対象の応答を確認する。~ |
- | BROADCASTING IDを指定した場合の応答がデバイスのシリーズによって差が生じるため、正確な情報を取得できない場合がある。 | + | BROADCASTING IDを指定した場合の応答時間がデバイスのシリーズによって差があるため、それらが混在している環境では正確な情報を取得できない場合がある。 |
| bool DX_Ping2 (TDeviceID dvid, uint32_t *num, TDxAlarmStatus *AlarmStatus, TErrorCode *err); | | bool DX_Ping2 (TDeviceID dvid, uint32_t *num, TDxAlarmStatus *AlarmStatus, TErrorCode *err); |
| -パラメータ | | -パラメータ |