2.1.1. cmxGnloadDevice


SYNOPSYS

VT_I4 cmxGnLoadDevice ([out] VT_PI4 NumDevices, [out] VT_PI4 BoardIDList,
[out] VT_PI4 NumServos)

DESCRIPTION

  • 시스템에 설치된 하드웨어 장치를 언로드하고 장치사용을 종료합니다. 이 함수는 ComiMLink3의 함수 사용을 종료하기 위해 명시적으로 호출되어야 합니다. 일반적으로 프로그램의 종료부분에서 수행해주면 됩니다.

  • 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cmx가 붙지 않습니다.

PARAMETER

▶NumDevices:이매개변수를통하여실제로로드(Load)된네트워크모션보드의개수를반환합니 다. 단, 이매개변수에 NULL 을전달하면보드개수를반환하지않습니다.

▶BoardIDList:이매개변수를통하여실제로로드(Load)된네트워크모션보드의 ID 배열을반환합니다. 단, 이매개변수에 NULL 을전달하면보드 ID 배열을반환하지않습니다.

▶NumServos:이매개변수를통하여실제로로드(Load)된서보드라이브의개수를반환합니다. 단, 이매개변수에 NULL 을전달하면제어축수를반환하지않습니다.

RETUEN VALUE

Value

Meaning

음수

수행 실패

ERR_NONE

수행 성공

EXAMPLE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
C/C++

#include “ComiRTEX_SDK_Def.h”
void ProgramInitial(void)
{
long nNumDevices = 0;
long DeviceList[16] = {0, };
long nNumAxes = 0;
if ( cmxLoadDll() != TRUE ) {
/* OutputDebugString API 는 GUI 프로그램에서 문자열을 디버거에 보낼 수 있습니다. Borland
C++ Builder 에서는 DebugWindows에 Event Log 를  확인(確認)할 수 있으며, MS VC++ 에서는
Debug 윈도우에서 확인(確認)할 수 있습니다. */
long BoardID = 0;
OutputDebugString(“DLL 로드에 실패하였습니다”);
// 이후 적절한 에러처리를 해주시기 바랍니다.
}
if cmxGnLoadDevice (&nNumDevices, DeviceList, &nNumAxes) != ERR_NONE ){
 // 에러메시지 출력
}
} /* ProgramInitial(void) 함수의 끝 */
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
Visual Basic

Visual Basic 에서는 명시적인 DLL 로드가 필요 없습니다.
Private Sub Form_Load()
Dim IRetVal As Long
Dim nTotalDevices As Long
Dim DeviceList(16) As Long
Dim nTotalAxes As Long
IRetVal = GnLoadDevice (nTotalDevices, DeviceList(0), nTotalAxes)
If  IRetVal <> ERR_NONE Then
MsgBox(“cmxGnLoadDevice has been failed”)
End If
End Sub
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
Delphi

//* Delphi 에서는 명시적인 DLL 로드가 필요없습니다.
//* 단, 처음 선언시에 다음과 같은 내용이 포함되어야 합니다.
/////////////////////////////////////////////////////////////
// COMZIOA SDK Library 를 위한 인터페이스 파일을 사용합니다.
uses ComiRTEX;
////////////////////////////////////////////////////////////
procedure TForm1.OnCreate(Sender: TObject);
var
g_nDevs : LongInt;
DevList : Array[0..15] of LongInt
g_nAxes : LongInt;
begin
if ( cmxGnLoadDevice (@g_nDevs, @DevList, @g_nAxes) <> ERR_NONE ) then
begin
// 에러메시지 출력
exit;
end;
end;

SEE ALSO