■外部コマンドの詳細
外部コマンドは、お使いのステージ装置または電子顕微鏡装置へ送信されるコマンドです。面倒なシリアル回線の接続処理や通信プロトコル処理は、ステージリンクが行いますのでコマンド文字列だけの記述で操作が可能となります。コマンド文字列の内容は、お使いのステージ装置または電子顕微鏡装置の外部コントロールにあたる説明書をご覧になり、そこに記載してあるテキストを参照してください。
外部コマンドをステージリンクに送信する手順や返答を受信する手順は内部コマンドと同じです。ただし、外部コマンドは、送信するコマンド文字列の先頭に "#EXTERNAL#" を付ける必要があります。下記の例をご覧ください。
例:現在位置の取得(MD−10/FB−2000)
HWND hWndSL; // ステージリンクのウィンドウハンドル
HWND hMyWnd; // 自分のウィンドウハンドル
COPYDATASTRUCT stCopyData; // COPYDATASTRUCT構造体
CHAR szData[20+1+500+1]; // コマンド文字列を格納するエリア
sprintf( szData, "%s %s", "#EXTERNAL#", "0R3" );
stCopyData.dwData = 0;
stCopyData.cbData = strlen(szData);
stCopyData.lpData = szData;
SendMessage( hWndSL, WM_COPYDATA, (WPARAM)hMyWnd, (LPARAM)&stCopyData );
このコマンド文字列を送信するとつぎの返答メッセージが帰ってきます。
"SUCCESS△Q00D00C00012C0"
(この例は、X軸が53260μm、Y軸が300μm位置の場合のテキストです。)
例:現在位置の取得(S−4000)
HWND hWndSL; // ステージリンクのウィンドウハンドル
HWND hMyWnd; // 自分のウィンドウハンドル
COPYDATASTRUCT stCopyData; // COPYDATASTRUCT構造体
CHAR szData[20+1+500+1]; // コマンド文字列を格納するエリア
sprintf( szData, "%s %s", "#EXTERNAL#", "MPHa" );
stCopyData.dwData = 0;
stCopyData.cbData = strlen(szData);
stCopyData.lpData = szData;
SendMessage( hWndSL, WM_COPYDATA, (WPARAM)hMyWnd, (LPARAM)&stCopyData );
このコマンド文字列を送信するとつぎの返答メッセージが帰ってきます。
"SUCCESS△HPMa53260.0△300.0△△△0.0△△"
(この例は、X軸が53260μm、Y軸が300μm位置の場合のテキストです。)
また、外部コマンドには、つぎのパラメータが用意されています。
応答待ち時間:外部コマンドを顕微鏡に送信してその応答を待つ時間を秒単位で指定できます。指定しない場合は、3秒がデフォルトです。
リトライ回数:上記の応答待ち時間が経過して応答が得られない場合に再送信を繰り返します。その回数が指定できます。指定しない場合は、2回がデフォルトです。
これらのパラメータは、#EXTERNAL#文字列に続けて次のように記述します。
#EXTERNAL#[応答待ち時間,リトライ回数]△コマンド文字列
次の例は、応答待ち時間=9秒、リトライ回数=3回を指定した内容です。
sprintf( szData, "%s%d,%d %s", "#EXTERNAL#", 9, 3, "MPHa" );
※△印は空白文字を表します。