2.1.1. cmmGnDeviceLoad


Warning

CMMSDK API를 사용하기 위해 cmmLoadDll 이후 사용되어야 하는 함수입니다.

SYNOPSYS

VT_I4 cmmGnDeviceLoad (
  [in] VT_I4 IsResetDevice, [out] VT_PI4 NumAxes
  )

PARAMETER

  • IsResetDevice : 장치 초기화를 수행할지를 결정합니다.

Value

Meaning

0 또는 cmFALSE

장치 로드 시에 장치를 초기 값으로 초기화하지 않습니다.

1 또는 cmTRUE

장치 로드 시에 장치를 리셋한 후 장치의 여러 속성들을 기본값으로 초기화합니다.

NumAxes : 모션 제어 축의 개수를 반환합니다. NULL을 전달할 경우 에러코드를 반환하지 않습니다.

DESCRIPTION

  • 시스템에 설치된 하드웨어 장치를 로드합니다.

RETURN VALUE

  • 장치 로드 성공 여부를 반환합니다.

Value

Meaning

음수

수행 실패.

cmERR_NONE

수행 성공

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 #include “Cmmsdk.h”
 #include “CmmsdkDef.h”
 void ProgramInitial(void)
 {
 long nNumAxes = 0;
 if ( cmmLoadDll() != TRUE ) {
 /* OutputDebugString API 는 GUI 프로그램에서 문자열을 디버거에 보낼 수 있습니다. Borland C++ Builder 에서는
 DebugWindows 에 Event Log 를 확인(確認)할 수 있으며, MS VC++ 에서는 Debug 윈도우에서 확인(確認)할 수 있습니다. */
 OutputDebugString(“DLL 로드에 실패하였습니다”);
 // 이후 적절한 에러처리를 해주시기 바랍니다.
     }
     if ( cmmGnDeviceLoad(cmTRUE, &nNumAxes) != cmERR_NONE ){

    // MS VC++ 에서는 아래와 같이 에러 원인을 화면에 표시할 수 있습니다.
     cmmErrShowLast(GetSafeHwnd());

     // Borland C++ 계열에서는 아래와 같이 에러원인을 화면에 표시할 수 있습니다.
    cmmErrShowLast(Form1->Handle);
     }
 } /* ProgramInitial(void) 함수의 끝 */

 -----------------------------------------------------------------------------------------------------------------------------

  Visual Basic

 ‘ Visual Basic 에서는 명시적인 DLL 로드가 필요 없습니다.
  Private Sub Form_Load()
  Dim IRetVal As Long
  Dim nTotalAxes As Long
  IRetVal = cmmGnDeviceLoad(cmTRUE, nTotalAxes)
  If IRetVal <> cmERR_NONE Then
     MsgBox(“cmmGnDeviceLoas has been failed”)
  End If
  End Sub

 ------------------------------------------------------------------------------------------------------------------------------

 Delphi

 //* Delphi 에서는 명시적인 DLL 로드가 필요없습니다.
 //* 단, 처음 선언 시에 다음과 같은 내용이 포함되어야 합니다.
 /////////////////////////////////////////////////////////////
 // COMZIOA SDK Library 를 위한 인터페이스 파일을 사용합니다.
 uses CmmSDK;
 ////////////////////////////////////////////////////////////
 procedure TForm1.OnCreate(Sender: TObject);
 var
     g_nAxes : LongInt;
 begin
 if ( cmmGnDeviceLoad(cmTRUE, @g_nAxes) <> cmERR_NONE ) then
 begin
     cmmErrShowLast(Form1.Handle);
     exit;
 end;

 end;