7.2.4. ecSlv_GetTypeInfo¶
SYNOPSIS¶
t_success ecSlv_GetProdInfo(
t_i32 NetID,
t_i32 SlavePhysAddr,
TecSlvTypeInfo *pTypeInfoBuf,
t_i32 *ErrCode)
t_success ecSlv_GetProdInfo_A(
t_i32 NetID,
t_i32 SlaveIndex,
TecSlvTypeInfo *pTypeInfoBuf,
t_i32 *ErrCode)
DESCRIPTION¶
ecSlv_GetTypeInfo(), ecSlv_GetTypeInfo_A() 함수는 슬레이브 모듈의 장치 형식에 대한 정보를 반환합니다.
PARAMETER¶
NetID : 사용자가 사용 할 Network 번호
SlvPhysAddr: 슬레이브의 물리적 주소( ex. 서보 로터리 스위치로 선택한 축 번호)
SlaveIndex : 슬레이브 번호(슬레이브가 연결되어 있는 순서를 인덱스로 구분)
pTypeInfoBuf : 장치 형식에 대한 구조체 변수.
ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
RETURN VALUE¶
이 리턴값은 불 형(Boolean Type) 을 가지고 있습니다.
Value |
Meaning |
---|---|
0 |
정보를 가져오는데 실패 했음을 의미합니다. |
1 |
정보를 가져오는데 성공 했음을 의미합니다. |
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 | #include "ComiEcatSdk_Api.h"
t_32 Error_Num = 0;//함수 별 에러 코드 저장 변수
void Slave_Load(void)
{
TEcSlvProdInfo pProdInfoBuf; // Product ID에 대한 구조체 변수.
TEcSlvTypeInfo pTypeInfoBuf; // 장치 형식에 대한 구조체 변수
t_ui8 Alstate = 0;
//Device_Info 변수는 6장 참고
if(!ecSlv_GetProdInfo(Device_Info.NetIdx, SLAVE_PHYADDR, &pProdInfoBuf, &Error_Num))
{
// SLAVE_PHYADDR -> 슬레이브의 물리적 주소를 입력
// ecSlv_GetProdInfo_A함수를 이용하여 물리적 주소 대신 슬레이브 번호를 입력하여 사용 가능
// 이 함수를 이용하여 슬레이브의 Product Code 구조체를 얻어 옴
// 슬레이브 Product ID 정보 확인 실패 시 예외 처리
}
if(!ecSlv_GetTypeInfo(Device_Info.NetIdx, SLAVE_PHYADDR,&pTypeInfoBuf, &Error_Num))
{
// SLAVE_PHYADDR -> 슬레이브의 물리적 주소를 입력
// ecSlv_ GetTypeInfo_A 함수를 이용하여 물리적 주소 대신 슬레이브 번호를 입력하여 사용 가능
// 슬레이브 장치 정보 로드 실패시 예외 처리
}
else
{
/************************************************************************
장치 정보 로드 성공 시 pTypeInfoBuf 구조체에는 각 각 연결 된
모듈의 시작 채널 및 채널 개수 구조체 형태로 저장
*************************************************************************/
}
Alstate = ecSlv_GetAlState(Device_Info.NetIdx, SLAVE_PHYADDR, &Error_Num); //물리적 주소 위치에 있는 슬레이브 AlState 확인
}
|