7.2.3. ecSlv_GetProdInfo


SYNOPSIS

t_success ecSlv_GetProdInfo(
  t_i32 NetID,
  t_i32 SlavePhysAddr,
  TecSlvProdInfo *pProdInfoBuf,
  t_i32 *ErrCode)

t_success ecSlv_GetProdInfo_A(
  t_i32 NetID,
  t_i32 SlaveIndex,
  TecSlvProdInfo *pProdInfoBuf,
  t_i32 *ErrCode)

DESCRIPTION

  • 슬레이브에 대한 Product ID 정보를 반환합니다.

PARAMETER

  • NetID : 사용자가 사용할 Network 번호

  • SlvPhysAddr : 슬레이브의 물리적 주소

  • SlaveIndex : 슬레이브 번호

  • pProdInfoBuf : ProductID에 대한 구조체 변수

  • 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 확인
}