6.10. ADS over EtherCAT (AoE)

To handle AoE object transfers within the application, the callbacks pfnAoeRead, pfnAoeWrite and/or pfnAoeReadWrite can be registered using esSetSlaveAoeObjectTransferCallbacks() or esSetSlaveSscApplication(), e.g. in myAppPrepare() of EcSimulatorHilDemo / EcSimulatorSilDemo.

See also AoE Simulator and Master Example

6.10.1. esAoeGetSlaveNetId

EC_T_DWORD esAoeGetSlaveNetId(EC_T_DWORD dwInstanceID, EC_T_DWORD dwSlaveId, EC_T_AOE_NETID *poAoeNetId)

Retrieve the NetID of a specific EtherCAT device.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • dwSlaveId – [in] Slave ID

  • poAoeNetId – [out] AoE NetID of the corresponding slave

Returns

6.10.2. esAoeRead

EC_T_DWORD esAoeRead(EC_T_DWORD dwInstanceID, EC_T_DWORD dwSlaveId, EC_T_AOE_NETID *poTargetNetId, EC_T_WORD wTargetPort, EC_T_DWORD dwIndexGroup, EC_T_DWORD dwIndexOffset, EC_T_DWORD dwDataLen, EC_T_BYTE *pbyData, EC_T_DWORD *pdwDataOutLen, EC_T_DWORD *pdwErrorCode, EC_T_DWORD *pdwCmdResult, EC_T_DWORD dwTimeout)

Execute a AoE mailbox read request to an EtherCAT slave device.

This function may not be called from within the JobTask’s context.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • dwSlaveId – [in] Slave ID

  • poTargetNetId – [in] Target NetID.

  • wTargetPort – [in] Target port.

  • dwIndexGroup – [in] AoE read command index group.

  • dwIndexOffset – [in] AoE read command index offset

  • dwDataLen – [in] Buffer length [bytes]

  • pbyData – [out] Buffer receiving transfered data

  • pdwDataOutLen – [out] Number of bytes read from the target device

  • pdwErrorCode – [out] AoE response error code

  • pdwCmdResult – [out] AoE read command result code

  • dwTimeout – [in] Timeout [ms] The function will block at most for this time.

Returns

6.10.3. esAoeWrite

EC_T_DWORD esAoeWrite(EC_T_DWORD dwInstanceID, EC_T_DWORD dwSlaveId, EC_T_AOE_NETID *poTargetNetId, EC_T_WORD wTargetPort, EC_T_DWORD dwIndexGroup, EC_T_DWORD dwIndexOffset, EC_T_DWORD dwDataLen, EC_T_BYTE *pbyData, EC_T_DWORD *pdwErrorCode, EC_T_DWORD *pdwCmdResult, EC_T_DWORD dwTimeout)

Execute a AoE mailbox write request to an EtherCAT slave device.

This function may not be called from within the JobTask’s context.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • dwSlaveId – [in] Slave ID

  • poTargetNetId – [in] Target NetID.

  • wTargetPort – [in] Target port.

  • dwIndexGroup – [in] AoE write command index group.

  • dwIndexOffset – [in] AoE write command index offset

  • dwDataLen – [in] Buffer length [bytes]

  • pbyData – [in] Buffer containing transfered data

  • pdwErrorCode – [out] Pointer to AoE response error code.

  • pdwCmdResult – [out] Pointer to AoE write command result code.

  • dwTimeout – [in] Timeout [ms] The function will block at most for this time.

Returns

6.10.4. esAoeReadWrite

EC_T_DWORD esAoeReadWrite(EC_T_DWORD dwInstanceID, EC_T_DWORD dwSlaveId, EC_T_AOE_NETID *poTargetNetId, EC_T_WORD wTargetPort, EC_T_DWORD dwIndexGroup, EC_T_DWORD dwIndexOffset, EC_T_DWORD dwReadDataLen, EC_T_DWORD dwWriteDataLen, EC_T_BYTE *pbyData, EC_T_DWORD *pdwDataOutLen, EC_T_DWORD *pdwErrorCode, EC_T_DWORD *pdwCmdResult, EC_T_DWORD dwTimeout)

Execute a AoE mailbox read/write request to an EtherCAT slave device.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • dwSlaveId – [in] Slave ID

  • poTargetNetId – [in] Target NetID.

  • wTargetPort – [in] Target port.

  • dwIndexGroup – [in] AoE read/write command index group.

  • dwIndexOffset – [in] AoE read/write command index offset

  • dwReadDataLen – [in] Number of bytes to read from the target device.

  • dwWriteDataLen – [in] Number of bytes to read from the target device.

  • pbyData – [in, out] Buffer containing and receiving transfered data

  • pdwDataOutLen – [out] Number of bytes read from the target device

  • pdwErrorCode – [out] Pointer to AoE response error code.

  • pdwCmdResult – [out] Pointer to AoE write command result code.

  • dwTimeout – [in] Timeout [ms] The function will block at most for this time. EC_NOWAIT is not valid.

Returns

6.10.5. esSetSlaveAoeObjectTransferCallbacks

EC_T_DWORD esSetSlaveAoeObjectTransferCallbacks(EC_T_DWORD dwInstanceId, EC_T_WORD wCfgFixedAddress, EC_T_PF_AOE_READ_CB pfRead, EC_T_PF_AOE_WRITE_CB pfWrite, EC_T_PF_AOE_READWRITE_CB pfReadWrite, EC_T_VOID *pvContext)

Set AoE read/write callbacks.

Parameters
  • dwInstanceId – [in] Simulator Instance ID

  • wCfgFixedAddress – [in] Slave’s station address. 0: all slaves

  • pfRead – [in] Read callback function

  • pfWrite – [in] Write callback function

  • pfReadWrite – [in] ReadWrite callback function

  • pvContext – [in] pointer to context passed as first parameters to callback functions

Returns

EC_E_NOERROR or error code

6.10.6. AoE Simulator and Master Example

The following example demonstrates how to handle AoE object transfers within the simulator application:

6.11. CAN application protocol over EtherCAT (CoE)

To handle CoE object transfers within the application, the callbacks pfnCoeRead and/or pfnCoeWrite can be registered using esSetSlaveCoeObjectTransferCallbacks() or esSetSlaveSscApplication(), e.g. in myAppPrepare() of EcSimulatorHilDemo / EcSimulatorSilDemo.

See also CoE transfer Simulator and Master Example

6.11.1. esExtendSlaveCoeObjectDictionary

EC_T_DWORD esExtendSlaveCoeObjectDictionary(EC_T_DWORD dwInstanceId, EC_T_WORD wCfgFixedAddress, struct _EC_T_COE_DICTIONARY_DESC *pDict)

Add data types and / or objects to slave’s CoE object dictionary.

Parameters
  • dwInstanceId – [in] Simulator Instance ID

  • wCfgFixedAddress – [in] Slave’s station address

  • pDict – [in] Pointer to dictionary descriptor

Returns

EC_E_NOERROR or error code

6.11.2. esDeleteSlaveCoeObject

EC_T_DWORD esDeleteSlaveCoeObject(EC_T_DWORD dwInstanceId, EC_T_WORD wCfgFixedAddress, EC_T_WORD wObjectIndex)

Delete object from slave’s CoE object dictionary.

Parameters
  • dwInstanceId – [in] Simulator Instance ID

  • wCfgFixedAddress – [in] Slave’s station address

  • wObjectIndex – [in] Object index

Returns

EC_E_NOERROR or error code

6.11.3. esClearSlaveCoeObjectDictionary

EC_T_DWORD esClearSlaveCoeObjectDictionary(EC_T_DWORD dwInstanceId, EC_T_WORD wCfgFixedAddress)

Delete all objects from slave’s CoE object dictionary.

Parameters
  • dwInstanceId – [in] Simulator Instance ID

  • wCfgFixedAddress – [in] Slave’s station address

Returns

EC_E_NOERROR or error code

6.11.4. esResetSlaveCoeObjectDictionary

EC_T_DWORD esResetSlaveCoeObjectDictionary(EC_T_DWORD dwInstanceId, EC_T_WORD wCfgFixedAddress)

Reset all objects from slave’s CoE object dictionary to default.

Parameters
  • dwInstanceId – [in] Simulator Instance ID

  • wCfgFixedAddress – [in] Slave’s station address

Returns

EC_E_NOERROR or error code

6.11.5. esSetSlaveCoeObjectTransferCallbacks

EC_T_DWORD esSetSlaveCoeObjectTransferCallbacks(EC_T_DWORD dwInstanceId, EC_T_WORD wCfgFixedAddress, EC_T_WORD wObjectIndex, EC_T_PF_COE_READ_CB pfRead, EC_T_PF_COE_WRITE_CB pfWrite, EC_T_VOID *pvContext)

Set SDO upload / download transfer callbacks.

Note

: pfRead / pfWrite can also be registered if object dictionary unavailable at EC-Simulator. esClearSlaveCoeObjectDictionary() has to be called first. See esClearSlaveCoeObjectDictionary(). In case of using an ENI and the simulator’s default dictionary wObjectIndex must be set to 0xFFFF.

Parameters
  • dwInstanceId[in] Simulator Instance ID

  • wCfgFixedAddress[in] Slave’s station address. 0: All slaves

  • wObjectIndex[in] Object index. 0xFFFF: all objects

  • pfRead[in] Upload callback function. EC_NULL: clears callback if already registered

  • pfWrite[in] Download callback function. EC_NULL: clears callback if already registered

  • pvContext[in] Arbitrarily application-defined parameter passed to transfer callback functions

Returns

typedef EC_T_VOID (*EC_T_PF_COE_READ_CB)(EC_T_VOID *pvContext, EC_T_WORD wCfgFixedAddress, EC_T_WORD wIndex, EC_T_BYTE bySubindex, EC_T_DWORD dwSize, EC_T_BYTE *pbyData, EC_T_DWORD *pdwOutDataLen, EC_T_BOOL bCompleteAccess, EC_T_BOOL bCheckReadAccess, EC_T_DWORD *pdwErrorCode)

CoE Read Object Callback: Handle read requests from the master in the simulator application. The simulator has pre-handled the request and sets pdwErrorCode accordingly.

Parameters
  • pvContext[in] Arbitrarily application-defined parameter passed to callback

  • wCfgFixedAddress[in] Slave fixed address from master request

  • wIndex[in] Object Index from master request, e.g. 0x1018

  • bySubindex[in] Object SubIndex from master request

  • dwSize[in] Read buffer size according to MbxIn Sync Manager size

  • pbyData[inout] Read data buffer: pre-filled by the simulator if the object exists in the simulated slave’s object dictionary and is read-able in the current EtherCAT state

  • pdwOutDataLen[inout] Read data length: pre-filled by the simulator if the object exists in the simulated slave’s object dictionary and is read-able in the current EtherCAT state, else the simulator application shall set the value accordingly

  • bCompleteAccess[in] EC_TRUE: CoE SDO Upload with Complete Access. See also EC_MAILBOX_FLAG_SDO_COMPLETE

  • bCheckReadAccess[in] EC_TRUE: The simulator application should check the read access, e.g. if the object does not exist in the simulated slave’s object dictionary

  • pdwErrorCode[inout] Current transfer error code pre-filled by the simulator. The simulator application shall set the current transfer error accordingly within the callback.

typedef EC_T_VOID (*EC_T_PF_COE_WRITE_CB)(EC_T_VOID *pvContext, EC_T_WORD wCfgFixedAddress, EC_T_WORD wIndex, EC_T_BYTE bySubindex, EC_T_DWORD dwSize, EC_T_BYTE *pbyData, EC_T_BOOL bCompleteAccess, EC_T_BOOL bCheckWriteAccess, EC_T_DWORD *pdwErrorCode)

CoE Write Object Callback: Handle write requests from the master in the simulator application. The simulator has pre-handled the request and sets pdwErrorCode accordingly.

Parameters
  • pvContext[in] Arbitrarily application-defined parameter passed to callback

  • wCfgFixedAddress[in] Slave fixed address from master request

  • wIndex[in] Object Index from master request, e.g. 0x40A2

  • bySubindex[in] Object SubIndex from master request

  • dwSize[in] Write data length

  • pbyData[inout] Write data buffer: pre-filled by the simulator if the object exists in the simulated slave’s object dictionary and is write-able in the current EtherCAT state

  • bCompleteAccess[in] EC_TRUE: CoE SDO Download with Complete Access. See also EC_MAILBOX_FLAG_SDO_COMPLETE

  • bCheckWriteAccess[in] EC_TRUE: The simulator application should check the write access, e.g. if the object does not exist in the simulated slave’s object dictionary

  • pdwErrorCode[inout] Current transfer error code pre-filled by the simulator. The simulator application shall set the current transfer error accordingly within the callback.

6.11.6. esCoeSdoDownload

EC_T_DWORD esCoeSdoDownload(EC_T_DWORD dwInstanceID, EC_T_DWORD dwSlaveId, EC_T_WORD wObIndex, EC_T_BYTE byObSubIndex, EC_T_BYTE *pbyData, EC_T_DWORD dwDataLen, EC_T_DWORD dwTimeout, EC_T_DWORD dwFlags)

Execute a CoE SDO download to an EtherCAT slave device.

This function may not be called from within the JobTask’s context.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • dwSlaveId – [in] Slave ID

  • wObIndex – [in] Object index.

  • byObSubIndex – [in] Object sub index. 0 or 1 if Complete Access.

  • pbyData – [in] Buffer containing transfered data

  • dwDataLen – [in] Buffer length [bytes]

  • dwTimeout – [in] Timeout [ms]

  • dwFlags – [in] Mailbox Flags. Bit 0: set if Complete Access (EC_MAILBOX_FLAG_SDO_COMPLETE).

Returns

EC_E_NOERROR or error code

6.11.7. esCoeSdoUpload

EC_T_DWORD esCoeSdoUpload(EC_T_DWORD dwInstanceID, EC_T_DWORD dwSlaveId, EC_T_WORD wObIndex, EC_T_BYTE byObSubIndex, EC_T_BYTE *pbyData, EC_T_DWORD dwDataLen, EC_T_DWORD *pdwOutDataLen, EC_T_DWORD dwTimeout, EC_T_DWORD dwFlags)

Execute a CoE SDO upload from an EtherCAT slave device to the master.

This function may not be called from within the JobTask’s context.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • dwSlaveId – [in] Slave ID

  • wObIndex – [in] Object index.

  • byObSubIndex – [in] Object sub index. 0 or 1 if Complete Access.

  • pbyData – [out] Buffer receiving transfered data

  • dwDataLen – [in] Buffer length [bytes]

  • pdwOutDataLen – [out] Length of received data [byte]

  • dwTimeout – [in] Timeout [ms]

  • dwFlags – [in] Mailbox Flags. Bit 0: set if Complete Access (EC_MAILBOX_FLAG_SDO_COMPLETE).

Returns

EC_E_NOERROR or error code

6.11.8. CoE transfer Simulator and Master Example

The following example demonstrates how to handle CoE object transfers within the simulator application:

6.11.9. esCoeGetODList

EC_T_DWORD esCoeGetODList(EC_T_DWORD dwInstanceID, EC_T_MBXTFER *pMbxTfer, EC_T_DWORD dwSlaveId, EC_T_COE_ODLIST_TYPE eListType, EC_T_DWORD dwTimeout)

Gets a list of object IDs that are available in a slave.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • pMbxTfer – [in] Mailbox transfer

  • dwSlaveId – [in] Slave ID

  • eListType – [in] which object types shall be transferred

  • dwTimeout – [in] Timeout [ms] The function will block at most for this time. If the timeout value is set to EC_NOWAIT the function will return immediately.

6.11.10. esCoeGetObjectDesc

EC_T_DWORD esCoeGetObjectDesc(EC_T_DWORD dwInstanceID, EC_T_MBXTFER *pMbxTfer, EC_T_DWORD dwSlaveId, EC_T_WORD wObIndex, EC_T_DWORD dwTimeout)

Determines the description of a specific object.

A unique transfer ID must be written into EC_T_MBXTFER.dwTferId. EC_NOTIFY_MBOXRCV is given on completion. This function may not be called from within the JobTask’s context.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • pMbxTfer – [in] Mailbox transfer object

  • dwSlaveId – [in] Slave ID

  • wObIndex – [in] Object index

  • dwTimeout – [in] Timeout [ms] The function will block at most for this time. If the timeout value is set to EC_NOWAIT the function will return immediately.

Returns

EC_E_NOERROR or error code

struct EC_T_COE_OBDESC

Public Members

EC_T_WORD wObIndex

Index in the object dictionary

EC_T_WORD wDataType

Data type of the object

EC_T_BYTE byObjCode

Object code, see Table 62, ETG.1000 section 6

EC_T_BYTE byObjCategory

Object category

EC_T_BYTE byMaxNumSubIndex

Maximum sub index number

EC_T_WORD wObNameLen

Length of the object name

EC_T_WORD wStationAddress

Station address of the slave

EC_T_CHAR *pchObName

Object name (not NULL terminated!)

6.11.11. esCoeGetEntryDesc

EC_T_DWORD esCoeGetEntryDesc(EC_T_DWORD dwInstanceID, EC_T_MBXTFER *pMbxTfer, EC_T_DWORD dwSlaveId, EC_T_WORD wObIndex, EC_T_BYTE byObSubIndex, EC_T_BYTE byValueInfo, EC_T_DWORD dwTimeout)

Determines the description of a specific object entry.

A unique transfer ID must be written into EC_T_MBXTFER.dwTferId. EC_NOTIFY_MBOXRCV is given on completion. This function may not be called from within the JobTask’s context.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • pMbxTfer – [in] Mailbox transfer object

  • dwSlaveId – [in] Slave ID

  • wObIndex – [in] Object index

  • byObSubIndex – [in] Object sub-index

  • byValueInfo – [in] The value info bit mask includes which elements shall be in the response. See Value info flags for available values.

  • dwTimeout – [in] Timeout [ms] The function will block at most for this time. If the timeout value is set to EC_NOWAIT the function will return immediately

Returns

EC_E_NOERROR or error code

struct EC_T_COE_ENTRYDESC

Public Members

EC_T_WORD wObIndex

Index in the object dictionary

EC_T_BYTE byObSubIndex

Sub index in the object dictionary

EC_T_BYTE byValueInfo

Bit mask which information is included in pbyData. See Value info flags

EC_T_WORD wDataType

Object data type according to ETG.1000

EC_T_WORD wBitLen

Object size (number of bits)

EC_T_BYTE byObAccess

Access rights. See Object access flags

EC_T_BOOL bRxPdoMapping

Object is mappable in a RxPDO

EC_T_BOOL bTxPdoMapping

Object is mappable in a TxPDO

EC_T_BOOL bObCanBeUsedForBackup

Object can be used for backup

EC_T_BOOL bObCanBeUsedForSettings

Object can be used for settings

EC_T_WORD wStationAddress

Station address of the slave

EC_T_WORD wDataLen

Size of the remaining object data

EC_T_BYTE *pbyData

Remaining object data: dwUnitType, pbyDefaultValue, pbyMinValue, pbyMaxValue, pbyDescription

(see ETG.1000.5 and ETG.1000.6)

See szUnitType, szDefaultValue, szMinValue, szMaxValue, szDescription in CoeReadObjectDictionary in EcSdoServices.cpp as an example for evaluating EC_T_COE_ENTRYDESC.pbyData.

6.12. Ethernet over EtherCAT (EoE)

To handle EoE frames within the application, the callback pfnEoeReceive must be registered using esSetSlaveSscApplication(), e.g. in myAppPrepare() of EcSimulatorHilDemo / EcSimulatorSilDemo.

See also EoE Ping Example

6.12.1. esEoeSendFrame

EC_T_DWORD esEoeSendFrame(EC_T_DWORD dwInstanceId, EC_T_WORD wCfgFixedAddress, EC_T_BYTE *pbyFrame, EC_T_DWORD dwFrameLen)

Send EoE frame (queued)

Returns

EC_E_NOERROR or error code

6.12.2. esGetCfgSlaveEoeInfo

EC_T_DWORD esGetCfgSlaveEoeInfo(EC_T_DWORD dwInstanceID, EC_T_BOOL bFixedAddressing, EC_T_WORD wSlaveAddress, EC_T_CFG_SLAVE_EOE_INFO *pSlaveEoeInfo)

Return EoE information about a configured slave from the ENI file.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • bFixedAddressing – [in] EC_TRUE: use station address, EC_FALSE: use AutoInc address

  • wSlaveAddress – [in] Slave address according bFixedAddressing

  • pSlaveEoeInfo – [out] Information about the slave

Returns

Content of EC_T_CFG_SLAVE_EOE_INFO is subject to be extended.

struct EC_T_CFG_SLAVE_EOE_INFO

Public Members

EC_T_DWORD dwSlaveId

[out] Slave ID

EC_T_BOOL bMacAddr

[out] Indicates whether the MAC address could be read and is valid

EC_T_BYTE abyMacAddr[6]

[out] MAC address

EC_T_BOOL bIpAddr

[out] Indicates whether the IP address could be read and is valid

EC_T_BYTE abyIpAddr[4]

[out] IP address

EC_T_BOOL bSubnetMask

[out] Indicates whether the subnet mask could be read and is valid

EC_T_BYTE abySubnetMask[4]

[out] Subnet mask

EC_T_BOOL bDefaultGateway

[out] Indicates whether the default gateway could be read and is valid

EC_T_BYTE abyDefaultGateway[4]

[out] Default gateway

EC_T_BOOL bDnsServer

[out] Indicates whether the DNS server could be read and is valid

EC_T_BYTE abyDnsServer[4]

[out] DNS server

EC_T_BOOL bDnsName

[out] Indicates whether the DNS name could be read and is valid

EC_T_CHAR szDnsName[32]

[out] DNS name

6.12.3. EoE Ping Example

The following example demonstrates how to customize EoE simulation using esSetSlaveSscApplication() and esEoeSendFrame().

6.13. File access over EtherCAT (FoE)

The following examples demonstrate how to customize FoE simulation using esSetSlaveSscApplication() .

6.14. Vendor specific access over EtherCAT (VoE)

See also VoE Receive Example

6.14.1. esVoeSend

EC_T_DWORD esVoeSend(EC_T_DWORD dwInstanceId, EC_T_WORD wCfgFixedAddress, EC_T_WORD wDstFixedAddress, EC_T_VOID *pvData, EC_T_DWORD dwDataLen)

Fill “Mailbox In” (SM1) with VoE data to be polled by Master. The slave must have VoE enabled, see ESI: /EtherCATInfo/Descriptions/Devices/Device/Mailbox/VoE, ENI/EXI: /EtherCATConfig/Config/Slave/Mailbox/Protocol/VoE.

Parameters
  • dwInstanceId – [in] Simulator Instance ID

  • wCfgFixedAddress – [in] Slave’s station address

  • wDstFixedAddress – [in] Destination address

  • pvData – [in] Data

  • dwDataLen – [in] Data length

Returns

EC_E_NOERROR or error code

6.14.2. esSetVoeReceiveCallback

EC_T_DWORD esSetVoeReceiveCallback(EC_T_DWORD dwInstanceId, EC_T_WORD wCfgFixedAddress, EC_T_BYTE (*pfVoeReceive)(EC_T_VOID *pvContext, EC_T_WORD wFixedAddress, EC_T_WORD wSrcFixedAddress, EC_T_VOID *pvData, EC_T_DWORD dwDataLen), EC_T_VOID *pvContext)

Set VoE data received callback for “Mailbox Out” (SM0) Within the callback, no EC-Simulator API may be called. The slave must have VoE enabled, see ESI: /EtherCATInfo/Descriptions/Devices/Device/Mailbox/VoE, ENI/EXI: /EtherCATConfig/Config/Slave/Mailbox/Protocol/VoE.

Parameters
  • dwInstanceId – [in] Simulator Instance ID

  • wCfgFixedAddress – [in] Slave’s station address

  • pfVoeReceive – [in] Receive callback function

  • pvContext – [in] Receive callback function context

Returns

EC_E_NOERROR or error code

6.14.3. VoE Receive Example

The following examples demonstrate how to register a handler for VoE writes from the Master or from other slaves.