EtherNet/IP™ Adapter  1.04.06
User Reference Manual

◆ EI_API_CIP_setClassServiceFunc()

uint32_t EI_API_CIP_setClassServiceFunc ( T pCipNode_p,
uint16_t  classId_p,
EI_API_CIP_SService_t pService_p 
)

Add a callback function to a class service.

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

Remarks
This callback function will be executed every time the service is triggered.
Parameters
[in]pCipNode_pPointer to the CIP node.
[in]classId_pClass 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_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
#include <api/EI_API.h>
// 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_SService_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;
srvc = { EI_API_CIP_eSC_GETATTRIBUTESALL, 0, NULL, cbGetAttributesAll };
errCode = EI_API_CIP_setClassServiceFunc(pCipNode_p, classId, &srvc);
return(errCode);
}
See also
EI_API_CIP_CBService EI_API_CIP_createClass EI_API_CIP_addClassService EI_API_CIP_SService_t EI_API_CIP_EError_t
EI_API_CIP_setClassServiceFunc
ETHIP_API uint32_t EI_API_CIP_setClassServiceFunc(T *pCipNode_p, uint16_t classId_p, EI_API_CIP_SService_t *pService_p)
Add a callback function to a class service.
Definition: EI_API_CIP_main.c:504
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