125 lines
6.0 KiB
C#
125 lines
6.0 KiB
C#
/****************************************************************************
|
|
*****************************************************************************
|
|
**
|
|
** File Name
|
|
** ---------
|
|
**
|
|
** AXL.CS
|
|
**
|
|
** COPYRIGHT (c) AJINEXTEK Co., LTD
|
|
**
|
|
*****************************************************************************
|
|
*****************************************************************************
|
|
**
|
|
** Description
|
|
** -----------
|
|
** Ajinextek Library Header File
|
|
**
|
|
**
|
|
*****************************************************************************
|
|
*****************************************************************************
|
|
**
|
|
** Source Change Indices
|
|
** ---------------------
|
|
**
|
|
** (None)
|
|
**
|
|
*****************************************************************************
|
|
*****************************************************************************
|
|
**
|
|
** Website
|
|
** ---------------------
|
|
**
|
|
** http://www.ajinextek.com
|
|
**
|
|
*****************************************************************************
|
|
*****************************************************************************
|
|
*/
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
public class CAXL
|
|
{
|
|
//========== 라이브러리 초기화 ========================================================================
|
|
|
|
// 라이브러리 초기화
|
|
[DllImport("AXL.dll")] public static extern uint AxlOpen(int lIrqNo);
|
|
// 라이브러리 초기화시 하드웨어 칩에 리셋을 하지 않음.
|
|
[DllImport("AXL.dll")] public static extern uint AxlOpenNoReset(uint lIrqNo);
|
|
// 라이브러리 사용을 종료
|
|
[DllImport("AXL.dll")] public static extern int AxlClose();
|
|
// 라이브러리가 초기화 되어 있는 지 확인
|
|
[DllImport("AXL.dll")] public static extern int AxlIsOpened();
|
|
|
|
// 인터럽트를 사용한다.
|
|
[DllImport("AXL.dll")] public static extern uint AxlInterruptEnable();
|
|
// 인터럽트를 사용안한다.
|
|
[DllImport("AXL.dll")] public static extern uint AxlInterruptDisable();
|
|
|
|
//========== 라이브러리 및 베이스 보드 정보 ===========================================================
|
|
|
|
// 등록된 베이스 보드의 개수 확인
|
|
[DllImport("AXL.dll")] public static extern uint AxlGetBoardCount(ref int lpBoardCount);
|
|
// 라이브러리 버전 확인
|
|
[DllImport("AXL.dll")] public static extern uint AxlGetLibVersion(ref byte szVersion);
|
|
// Network제품의 각 모듈별 연결상태를 확인하는 함수
|
|
[DllImport("AXL.dll")] public static extern uint AxlGetModuleNodeStatus(int nBoardNo, int nModulePos);
|
|
// 해당 보드가 제어 가능한 상태인지 반환한다.
|
|
[DllImport("AXL.dll")] public static extern uint AxlGetBoardStatus(int nBoardNo);
|
|
// Network 제품의 Configuration Lock 상태를 반환한다.
|
|
// *wpLockMode : DISABLE(0), ENABLE(1)
|
|
[DllImport("AXL.dll")] public static extern uint AxlGetLockMode(int nBoardNo, ref uint upLockMode);
|
|
|
|
/*[DllImport("AXL.dll")]
|
|
public static extern uint AxlSetLockMode(int nBoardNo, uint upLockMode);
|
|
|
|
// Network 제품의 ScanTime 상태를 설정한다.
|
|
[DllImport("AXL.dll")]
|
|
public static extern uint AxlSetNetComTime(int nBoardNo, byte szNetComTime);
|
|
|
|
// Network 제품의 ScanTime 상태를 반환한다.
|
|
[DllImport("AXL.dll")]
|
|
public static extern uint AxlGetNetComTime(int nBoardNo, ref byte szNetComTime);*/
|
|
//========= 로그 레벨 =================================================================================
|
|
|
|
// 지정한 Network Type의 모든 Slave들이 동작가능한 상태인지를 확인하는 함수
|
|
// NETWORK_TYPE_ALL(0) :
|
|
// NETWORK_TYPE_RTEX(1) :
|
|
// NETWORK_TYPE_MLII(2) :
|
|
// NETWORK_TYPE_MLIII(3) :
|
|
// NETWORK_TYPE_SIIIH(4) :
|
|
// NETWORK_TYPE_ECAT(5) :
|
|
[DllImport("AXL.dll")] public static extern uint AxlIsConnectedAllSlaves(uint uNetworkType);
|
|
|
|
// 반환값에 대한 설명을 반환한다.
|
|
[DllImport("AXL.dll")] public static extern uint AxlGetReturnCodeInfo(uint dwReturnCode, int lReturnInfoSize, ref int lpRecivedSize, char[] szReturnInfo);
|
|
[DllImport("AXL.dll")] public static extern uint AxlGetReturnCodeInfo(uint dwReturnCode, int lReturnInfoSize, ref int lpRecivedSize, ref string szReturnInfo);
|
|
//========== 로그 레벨 =================================================================================
|
|
// EzSpy에 출력할 메시지 레벨 설정
|
|
// uLevel : 0 - 3 설정
|
|
// LEVEL_NONE(0) : 모든 메시지를 출력하지 않는다.
|
|
// LEVEL_ERROR(1) : 에러가 발생한 메시지만 출력한다.
|
|
// LEVEL_RUNSTOP(2) : 모션에서 Run / Stop 관련 메시지를 출력한다.
|
|
// LEVEL_FUNCTION(3): 모든 메시지를 출력한다.
|
|
[DllImport("AXL.dll")] public static extern uint AxlSetLogLevel(uint uLevel);
|
|
// EzSpy에 출력할 메시지 레벨 확인
|
|
[DllImport("AXL.dll")] public static extern uint AxlGetLogLevel(ref uint upLevel);
|
|
|
|
//========== MLIII =================================================================================
|
|
// Network제품의 각 모듈을 검색을 시작하는 함수
|
|
[DllImport("AXL.dll")] public static extern uint AxlScanStart(int lBoardNo, long lNet);
|
|
// Network제품 각 보드의 모든 모듈을 connect하는 함수
|
|
[DllImport("AXL.dll")] public static extern uint AxlBoardConnect(int lBoardNo, long lNet);
|
|
// Network제품 각 보드의 모든 모듈을 Disconnect하는 함수
|
|
[DllImport("AXL.dll")] public static extern uint AxlBoardDisconnect(int lBoardNo, long lNet);
|
|
|
|
//========== Fan Control ===============================================================================
|
|
// 보드에 장착되어 있는 Fan의 속도(rpm)를 확인한다.
|
|
[DllImport("AXL.dll")] public static extern uint AxlReadFanSpeed(int lBoardNo, ref double dpFanSpeed);
|
|
|
|
//========== EzSpy =================================================================================
|
|
// EzSpy User Log(Max length : 200 Bytes)
|
|
[DllImport("AXL.dll")] public static extern uint AxlEzSpyUserLog(string szUserLog);
|
|
}
|
|
|