EtherNet/IP™ Adapter3.09.00
 
Loading...
Searching...
No Matches

◆ EI_API_CIP_getRoutingAssemblySize()

uint32_t EI_API_CIP_getRoutingAssemblySize ( T *  pCipNode_p,
uint16_t  assemblyInstanceId_p,
uint16_t *  pSize_p,
uint8_t  linkAddr_p 
)

Get routable assembly instance attribute Size.

Retrieves routable assembly instance attribute Size (Attribute ID 4), as number of bytes in attribute Data (Attribute ID 3). Target instance is encoded by instance ID and link address.

Remarks
For details about encoding please see EI_API_CIP_createRoutableInstance.
Parameters
[in]pCipNode_pPointer to the CIP node.
[in]assemblyInstanceId_pAssembly instance identifier.
[out]pSize_pValue of assembly instance attribute ID 4, Size.
[in]linkAddr_pLink address used to encode the target instance ID.
Returns
EI_API_CIP_EError_t as uint32_t value.
Return values
EI_API_CIP_eERR_OKSuccess.
EI_API_CIP_eERR_NODE_INVALIDCIP node is invalid, possibly EI_API_CIP_NODE_new() was not called.
EI_API_CIP_eERR_ASSEMBLY_DOES_NOT_EXISTThe assembly with the given ID could not be found.
EI_API_CIP_eERR_ASSEMBLY_INVALID_SIZEInvalid size pointer.
Example
#include "EI_API.h"
EI_API_ADP_T* pEI_API_ADP = NULL;
EI_API_CIP_NODE_T* pEI_API_CIP_NODE = NULL;
uint32_t errCode;
uint8_t numInterfaces = 1;
uint8_t linkAddr = 1;
uint16_t assemblyInstanceId;
uint16_t size = 0;
// Create a new adapter first
pEI_API_ADP = EI_API_ADP_new(numInterfaces);
// Create a CIP node next
initParams.maxInstanceNum = 256;
pEI_API_CIP_NODE = EI_API_CIP_NODE_new(&initParams);
...
// Under pEI_API_CIP_NODE, create routable assembly instance with ID = 100, with read-write access
assemblyInstanceId = 0x64;
errCode = EI_API_CIP_createRoutingAssembly(pEI_API_CIP_NODE, assemblyInstanceId, EI_API_CIP_eAR_GET_AND_SET, linkAddr);
...
// Get attribute \p Size of routable assembly instance ID = 100, as number of bytes in attribute \p Data
errCode = EI_API_CIP_getRoutingAssemblySize(pEI_API_CIP_NODE, assemblyInstanceId, &size, linkAddr)
ETHIP_API T * EI_API_ADP_new(uint8_t numInterfaces_p)
Create a new EtherNet/IP adapter.
Definition EI_API_ADP_stub.c:231
ETHIP_API uint32_t EI_API_CIP_getRoutingAssemblySize(T *pCipNode_p, uint16_t assemblyInstanceId_p, uint16_t *pSize_p, uint8_t linkAddr_p)
Get routable assembly instance attribute Size.
Definition EI_API_CIP_stub.c:6399
ETHIP_API uint32_t EI_API_CIP_createRoutingAssembly(T *pCipNode_p, uint16_t assemblyInstanceId_p, EI_API_CIP_EAr_t accessRule_p, uint8_t linkAddr_p)
Create a new routable assembly instance.
Definition EI_API_CIP_stub.c:6316
@ EI_API_CIP_eAR_GET_AND_SET
Definition EI_API_def.h:124
ETHIP_API T * EI_API_CIP_NODE_new(EI_API_CIP_NODE_InitParams_t *pInitParams)
Create a new CIP node.
Definition EI_API_CIP_stub.c:81
uint16_t maxInstanceNum
Definition EI_API_CIP_define.h:162
Initialization parameters to create new CIP Node.
Definition EI_API_CIP_define.h:161
See also
EI_API_CIP_createRoutingAssembly EI_API_CIP_addRoutingAssemblyMember EI_API_CIP_getRoutingAssemblyData EI_API_CIP_setRoutingAssemblyData EI_API_CIP_EAr_t EI_API_CIP_EError_t