5.1.5. secSlv_ReadCoeSdo_A¶
Warning
이 함수는 해당 슬레이브가 PreOP 이상의 AL-STATE 에 있을 때에만 사용 가능합니다. 슬레이브가 INITIAL 상태에 있을 때 이 함수를 사용하면 읽기 실패합니다
SYNOPSIS¶
t_i32 secSlv_ReadCoeSdo_A (
[in] t_i32 NetID,
[in] t_ui16 SlaveIdx,
[in] t_i32 Index,
[in] t_i32 SubIndex,
[in] t_i32 IsComptAccess,
[in] t_i32 DataSize,
[out] void* pBuf,
[out] t_i32 *ErrCode
)
DESCRIPTION¶
지정한 슬레이브에서 지정된 SDO(Service Data Object) 오브젝트를 읽어서 반환하는 함수입니다.
PARAMETER¶
NetID : 사용자가 사용 할 Network 번호
SlaveIndex : 슬레이브 번호 (1 Base)
Index : 오브젝트 인덱스(Object Index)
SubIndex : 오브젝트 서브인덱스(Sub-index)
IsComptAccess: 오브젝트가 배열이나 구조체로 이루어진 경우 해당 오브젝트의 모든 서브인덱스에 해당하는 값을 읽을지 결정하는 플래그.
Value |
Meaning |
---|---|
0 |
지정한 서브인덱스에 대해서만 값을 읽습니다 |
1 |
모든 서브인덱스에 대한 데이터를 한꺼번에 읽습니다. 이 경우에는 SubIndex 값을 0으로 전달해야 하며, 버퍼는 오브젝트의 전체 데이터 구조와 일치하는 버퍼가 제공되어야 합니다 |
DataSize : 읽어올 Data Size. 이 값은 오브젝트 사전에서 정의된 해당 오브젝트의 데이터 크기와 일치해야 합니다. 그렇지 않으면 읽기에 실패할 수 있습니다.
pBuf: 읽은 데이터를 전달 받을 버퍼. ([out])
ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
RETURN VALUE¶
반환 값이 양수이면 읽은 데이터의 크기를 반환하는 것입니다. 반환 값이 음수이면 에러코드를 반환하는 것입니다.
EXAMPLE¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //ETS-EC04H 슬레이브에서 채널의 Input Pulse Mode를 변화시키는 예제
//Slave Address는 1, 0번 채널을 변화시킨다고 가정
#define NETID 0
#define SLAVE_ADDR 0x1
t_i32 errCode;
t_ui8 PulseMode = 4; // CW / CCW
t_ui8 PulseMode_rtn = 0;
secSlv_WriteCoeSdo_A(NETID, SLAVE_ADDR, 0x8000, 0x0D, false, 4, &PulseMode, &errCode);
//값이 제대로 설정되었는지 확인
secSlv_ReadCoeSdo_A(NETID, SLAVE_ADDR, 0x8000, 0x0D, false, 4, &PulseMode_rtn, &errCode);
printf("설정된 Pulse Mode 값은 %d 입니다!", PulseMode_rtn);
|
See also