ブログ - MATLABでDXLIB2を動かす

MATLABでDXLIB2を動かす

カテゴリ : 
その他
2011-7-19 17:51
DXLIB2にはLabVIEWのサンプルがあるが、MATLABのサンプルはないのか?
そんな噂を耳にしたので軽くさわりだけの確認を。
検証環境は以下の通り。
準備としてdxlib2.dllとdxlib2.hを作業フォルダへコピー。
MATLABを起動し、「ファイル(F)」→「パス設定(H)」で作業フォルダを追加。
mファイルを新規作成し、以下をdxsample.mとして保存。

function dxsample
if exist('dxlib2.h') ~= 2;
    disp('header undefined');
    return;
end
if ~libisloaded('dxlib2') loadlibrary('dxlib2.dll','dxlib2.h');end
pcom = '\\.\COM3';
br = 1000000;
tout = 100;

devid = calllib('dxlib2','DX_OpenPort',pcom,br);
if devid==0;
    disp('Open failed!');
    unloadlibrary('dxlib2');
    return;
end
Err = libpointer('uint16Ptr', 0);
for i = 0:252
    Ret = calllib('dxlib2', 'DX_Ping', devid, i+1, tout, Err);
    if Ret;
        fprintf('Found ID=%d\n', i+1);
    else
        fprintf('Not found ID=%d [$%04x]\n', i+1, Err.Value);
    end
end

calllib('dxlib2','DX_ClosePort',devid);
unloadlibrary('dxlib2');
disp('Normal end');

結果はこんな感じ。

警告はMATLAB内のwin.hに起因しているようで、少々loadlibraryに時間がかかっているが、ここでは割愛。

トラックバック

トラックバックpingアドレス http://www.besttechnology.co.jp/modules/d3blog/tb.php/93