EtherNet/IP™ Adapter  1.04.06
User Reference Manual

◆ EI_API_CIP_setInstanceServiceFunc()

uint32_t EI_API_CIP_setInstanceServiceFunc ( T pCipNode_p,
uint16_t  classId_p,
uint16_t  instanceId_p,
EI_API_CIP_SService_t pService_p 
)

Add a callback function to an instance service.

This function adds a callback function to a service which is registered for that instance.

Parameters
[in]pCipNode_pPointer to the CIP node.
[in]classId_pClass identifier.
[in]instanceId_pInstance identifier.
[in]pService_pService or services the class will support.
Returns
EI_API_CIP_EError_t as uint32_t value.
Return values
EI_API_CIP_eERR_OKSuccess.
EI_API_CIP_eERR_NODE_INVALIDCIP error code.
EI_API_CIP_eERR_CLASS_DOES_NOT_EXISTClass does not exists in CIP node dictionary.
EI_API_CIP_eERR_INSTANCE_DOES_NOT_EXISTInstance does not exist in CIP node dictionary.
EI_API_CIP_eERR_SERVICE_DOES_NOT_EXISTService does no exist.
EI_API_CIP_eERR_SERVICE_INVALIDService is invalid, possibly NULL pointer.
EI_API_CIP_eERR_INSTANCE_UNKNOWN_STATEUnknown state during class operation reached.
Example
// Add a callback to a class service
void cbGetAttributesAll(EI_API_CIP_NODE_T *pCipNode_p, uint16_t classId_p, uint16_t instanceId_p, uint16_t attrId_p, EI_API_CIP_ESc_t serviceCode_p, int16_t serviceFlag_p)
{
printf("Callback called!\n");
}
uint32_t registerServiceCallback(EI_API_CIP_NODE_T *pCipNode_p)
{
uint32_t errCode;
uint16_t classId = 0x64;
uint16_t instanceId = 0x01;
EI_API_CIP_SService_t srvc = { EI_API_CIP_eSC_GETATTRIBUTESALL, 0, NULL, cbGetAttributesAll };
errCode = EI_API_CIP_setInstanceServiceFunc(pCipNode_p, classId, instanceId, &srvc);
return(errCode);
}
See also
EI_API_CIP_CBService EI_API_CIP_createClass EI_API_CIP_createInstance EI_API_CIP_ESc_t EI_API_CIP_EError_t
EI_API_CIP_setInstanceServiceFunc
ETHIP_API uint32_t EI_API_CIP_setInstanceServiceFunc(T *pCipNode_p, uint16_t classId_p, uint16_t instanceId_p, EI_API_CIP_SService_t *pService_p)
Add a callback function to an instance service.
Definition: EI_API_CIP_main.c:1308
EI_API_CIP_eSC_GETATTRIBUTESALL
@ EI_API_CIP_eSC_GETATTRIBUTESALL
Definition: EI_API_def.h:114
EI_API_CIP_SService
General service parameter collection.
Definition: EI_API_CIP.h:180
EI_API_CIP_ESc_t
enum EI_API_CIP_ESc EI_API_CIP_ESc_t
Available CIP service codes.