EtherNet/IP™ Adapter Example Application, handling of permanent data storage.
#include <string.h>
#include <portmacro.h>
#include <FreeRTOSConfig.h>
#include <ti_board_open_close.h>
#include <api/EI_API.h>
#include <drivers/CUST_drivers.h>
#include "board.h"
#include "appPerm.h"
bool EI_APP_PERM_factoryReset(int16_t serviceFlag_p);
static EI_API_ADP_T *pAdp_s = NULL;
static bool resetRequired_s = false;
static bool configChanged_s = false;
static uint32_t resetTime_s = 0;
static int16_t resetServiceFlag_s;
{
.ipNwMask = 0xffffff00,
.ipGateway = 0xc0a80101,
.nameServer1 = 0x00000000,
.nameServer2 = 0x00000000,
.aDomainName = "",
.aHostName = "",
.configurationMethod = EIP_eCFGMETHOD_STATIC,
.ttlValue = 1,
.acdActive = true,
.aAcdAddr = { 0,0,0,0,0,0 },
.aAcdHdr = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
.intfConfig[0].bit.ETHIntfActive = 1,
.intfConfig[0].bit.ETHIntfAutoNeg = 1,
.intfConfig[0].bit.ETHIntfFDuplex = 0,
.intfConfig[0].bit.ETHIntf100MB = 0,
.intfConfig[1].bit.ETHIntfActive = 1,
.intfConfig[1].bit.ETHIntfAutoNeg = 1,
.intfConfig[1].bit.ETHIntfFDuplex = 0,
.intfConfig[1].bit.ETHIntf100MB = 0,
.qosParameter.Q_Tag_Enable = EI_API_ADP_DEFAULT_8021Q,
.qosParameter.DSCP_PTP_Event = EI_API_ADP_DEFAULT_DSCP_PTP_EVENT,
.qosParameter.DSCP_PTP_General = EI_API_ADP_DEFAULT_DSCP_PTP_GENERAL,
.qosParameter.DSCP_Urgent = EI_API_ADP_DEFAULT_DSCP_URGENT,
.qosParameter.DSCP_Scheduled = EI_API_ADP_DEFAULT_DSCP_SCHEDULED,
.qosParameter.DSCP_High = EI_API_ADP_DEFAULT_DSCP_HIGH,
.qosParameter.DSCP_Low = EI_API_ADP_DEFAULT_DSCP_LOW,
.qosParameter.DSCP_Explicit = EI_API_ADP_DEFAULT_DSCP_EXPLICIT,
.encapInactTimeout = 120,
.mcastConfig.allocControl = 0,
#if defined(TIME_SYNC)
.ptpEnable = 1,
.portEnable = 1,
.portLogAnnounceInterval = 1,
.portLogSyncInterval = 0,
.domainNumber = 0,
.aUserDescription = {"Kunbus;EthernetIP Adapter;"},
#else
.ptpEnable = 0,
.portEnable = 1,
.portLogAnnounceInterval = 1,
.portLogSyncInterval = 0,
.domainNumber = 0,
.aUserDescription = {"Kunbus;EthernetIP Adapter;"},
#endif
#if defined(QUICK_CONNECT)
.quickConnectEnabled = true,
#else
.quickConnectEnabled = false,
#endif
};
bool EI_APP_PERM_init(EI_API_ADP_T *pAdpNode_p)
{
pAdp_s = pAdpNode_p;
return (true);
}
bool EI_APP_PERM_write(bool blocking_p)
{
void* prmHandle = NULL;
uint32_t err = CUST_DRIVERS_eERR_NOERROR;
prmHandle = CUST_DRIVERS_PRM_getHandle(PERMANENT_DATA_MEMORY_TYPE, PERMANENT_DATA_MEMORY_INSTANCE);
err = CUST_DRIVERS_PRM_write (prmHandle,
PERMANENT_DATA_MEMORY_TYPE,
PERMANENT_DATA_MEMORY_OFFSET,
(uint8_t*)&permData_s,
blocking_p);
if (CUST_DRIVERS_eERR_NOERROR != err)
{
return false;
}
return true;
}
bool EI_APP_PERM_read(void)
{
void* prmHandle;
uint32_t err;
uint32_t checkSum;
prmHandle = CUST_DRIVERS_PRM_getHandle(PERMANENT_DATA_MEMORY_TYPE, PERMANENT_DATA_MEMORY_INSTANCE);
err = CUST_DRIVERS_PRM_read (prmHandle,
PERMANENT_DATA_MEMORY_TYPE,
PERMANENT_DATA_MEMORY_OFFSET,
(uint8_t *)&permData_s,
if (CUST_DRIVERS_eERR_NOERROR != err)
{
OSAL_printf ("\r\nPermanent data read failed");
goto laError;
}
checkSum = 0;
if ( (permData_s.permHdr.magicNumber != (('M' << 8) | 'R'))
|| (permData_s.permHdr.version != APP_PERM_DATA_VERSION)
|| (permData_s.permHdr.checksum != checkSum)
)
{
OSAL_printf ("The data is corrupted, write default values.\r\n");
EI_APP_PERM_factoryReset(1);
}
if(permData_s.permHdr.version == APP_PERM_DATA_VERSION)
{
}
else
{
}
#if defined(QUICK_CONNECT)
#endif
EI_API_ADP_setIpConfig(pAdp_s, configurationControl, permData_s.ipAddr, permData_s.ipNwMask, permData_s.ipGateway,
permData_s.nameServer1, permData_s.nameServer2, permData_s.aDomainName, false);
return true;
laError:
exit (-1);
}
bool EI_APP_PERM_factoryReset(int16_t serviceFlag_p)
{
switch (serviceFlag_p)
{
case 1:
break;
case 2:
permData_s.ttlValue = defaultPermData_s.
ttlValue;
permData_s.acdActive = defaultPermData_s.
acdActive;
permData_s.acdState = defaultPermData_s.
acdState;
OSAL_MEMORY_memcpy(permData_s.aAcdAddr, defaultPermData_s.
aAcdAddr,
sizeof(defaultPermData_s.
aAcdAddr));
OSAL_MEMORY_memcpy(permData_s.aAcdHdr, defaultPermData_s.
aAcdHdr,
sizeof(defaultPermData_s.
aAcdHdr));
permData_s.ptpEnable = defaultPermData_s.
ptpEnable;
permData_s.portEnable = defaultPermData_s.
portEnable;
OSAL_MEMORY_memcpy(permData_s.aUserDescription, defaultPermData_s.
aUserDescription, 128);
#if defined(QUICK_CONNECT)
#endif
break;
default:
return false;
}
return EI_APP_PERM_write(true);
}
void EI_APP_PERM_configCb(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)
{
static uint32_t lastCalled;
if ((OSAL_getMsTick() - lastCalled) < 100)
{
OSAL_SCHED_sleep(100);
}
lastCalled = OSAL_getMsTick();
if (classId_p == 0xf5)
{
if (attrId_p == 3 || attrId_p == 5)
{
bool hwConfigEnabled;
char aDomainName[49];
uint32_t ipAddr;
uint32_t ipNwMask;
uint32_t ipGateway;
uint32_t nameServer1;
uint32_t nameServer2;
if (hwConfigEnabled)
{
return;
}
if ( (ipAddr != permData_s.ipAddr) ||
(ipNwMask != permData_s.ipNwMask) ||
(ipGateway != permData_s.ipGateway) ||
(nameServer1 != permData_s.nameServer1) ||
(nameServer2 != permData_s.nameServer2) ||
(strncmp(aDomainName, permData_s.aDomainName, sizeof(permData_s.aDomainName)) != 0) )
{
permData_s.ipAddr = ipAddr;
permData_s.ipNwMask = ipNwMask;
permData_s.ipGateway = ipGateway;
permData_s.nameServer1 = nameServer1;
permData_s.nameServer2 = nameServer2;
strncpy(permData_s.aDomainName, aDomainName, sizeof(permData_s.aDomainName));
configChanged_s = true;
}
}
else if (attrId_p == 6)
{
char aHostName[65];
if(0 != strcmp(aHostName, permData_s.aHostName))
{
strncpy(permData_s.aHostName, aHostName, sizeof(permData_s.aHostName));
configChanged_s = true;
}
}
else if (attrId_p == 8)
{
uint8_t ttlValue;
if(ttlValue != permData_s.ttlValue)
{
permData_s.ttlValue = ttlValue;
configChanged_s = true;
}
}
else if (attrId_p == 9)
{
if(OSAL_MEMORY_memcmp(&mcastConfig, &permData_s.mcastConfig, sizeof(permData_s.mcastConfig)) != 0)
{
OSAL_MEMORY_memcpy (&permData_s.mcastConfig, &mcastConfig, sizeof(permData_s.mcastConfig));
configChanged_s = true;
}
}
else if (attrId_p == 10)
{
bool acdActive;
if(acdActive != permData_s.acdActive)
{
permData_s.acdActive = acdActive;
configChanged_s = true;
}
}
else if (attrId_p == 11)
{
uint8_t acdState;
if(acdState != permData_s.acdState ||
OSAL_MEMORY_memcmp(aAcdAddr.
data, permData_s.aAcdAddr,
sizeof(permData_s.aAcdAddr) != 0) ||
OSAL_MEMORY_memcmp(aAcdHdr.
data, permData_s.aAcdHdr,
sizeof(permData_s.aAcdHdr) != 0)
)
{
permData_s.acdState = acdState;
OSAL_MEMORY_memcpy(permData_s.aAcdAddr, aAcdAddr.
data,
sizeof(permData_s.aAcdAddr));
OSAL_MEMORY_memcpy(permData_s.aAcdHdr, aAcdHdr.
data,
sizeof(permData_s.aAcdHdr));
configChanged_s = true;
}
}
#if defined(QUICK_CONNECT)
else if (attrId_p == 12)
{
bool quickConnectEnabled;
if(quickConnectEnabled != permData_s.quickConnectEnabled)
{
permData_s.quickConnectEnabled = quickConnectEnabled;
configChanged_s = true;
}
}
#endif
else if (attrId_p == 13)
{
uint16_t encapInactTimeout;
if(encapInactTimeout != permData_s.encapInactTimeout)
{
permData_s.encapInactTimeout = encapInactTimeout;
configChanged_s = true;
}
}
else
{
configChanged_s = false;
}
}
else if (classId_p == 0x43)
{
if (attrId_p == 1)
{
bool ptpEnable;
if(ptpEnable != permData_s.ptpEnable)
{
permData_s.ptpEnable = ptpEnable;
configChanged_s = true;
}
}
else if (attrId_p == 13)
{
bool portEnable;
if(portEnable != permData_s.portEnable)
{
permData_s.portEnable = portEnable;
configChanged_s = true;
}
}
else if (attrId_p == 14)
{
uint16_t portLogAnnounceInterval;
if(portLogAnnounceInterval != permData_s.portLogAnnounceInterval)
{
permData_s.portLogAnnounceInterval = portLogAnnounceInterval;
configChanged_s = true;
}
}
else if (attrId_p == 15)
{
int16_t portLogSyncInterval;
if(portLogSyncInterval != permData_s.portLogSyncInterval)
{
permData_s.portLogSyncInterval = portLogSyncInterval;
configChanged_s = true;
}
}
else if (attrId_p == 18)
{
uint8_t domainNumber;
if(domainNumber != permData_s.domainNumber)
{
permData_s.domainNumber = domainNumber;
configChanged_s = true;
}
}
else if (attrId_p == 23)
{
char aUserDescription[128];
if(OSAL_MEMORY_memcmp(aUserDescription, permData_s.aUserDescription, sizeof(permData_s.aUserDescription)) != 0)
{
OSAL_MEMORY_memcpy (permData_s.aUserDescription, aUserDescription, sizeof(permData_s.aUserDescription));
configChanged_s = true;
}
}
}
else if (classId_p == 0x48)
{
if(OSAL_MEMORY_memcmp(&permData_s.qosParameter, &qos,
sizeof(
EI_API_ADP_SQos_t)) != 0)
{
configChanged_s = true;
}
}
else if (classId_p == 0xf6)
{
if (instanceId_p == 1)
{
if(intfConf.
all != permData_s.intfConfig[0].all)
{
permData_s.intfConfig[0] = intfConf;
configChanged_s = true;
}
}
else if (instanceId_p == 2)
{
if(intfConf.
all != permData_s.intfConfig[1].all)
{
permData_s.intfConfig[1] = intfConf;
configChanged_s = true;
}
}
else
{
configChanged_s = false;
}
}
else
{
configChanged_s = false;
}
}
void EI_APP_PERM_reset(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)
{
if (serviceFlag_p == 1 || serviceFlag_p == 2)
{
EI_APP_PERM_factoryReset(serviceFlag_p);
}
resetTime_s = OSAL_getMsTick();
resetRequired_s = true;
resetServiceFlag_s = serviceFlag_p;
}
int16_t EI_APP_PERM_getResetRequired(void)
{
uint32_t actTime = OSAL_getMsTick();
uint32_t difTime = 0;
if (resetRequired_s)
{
if (actTime < resetTime_s)
{
difTime = (0xFFFFFFFF - resetTime_s) + actTime;
}
else
{
difTime = actTime - resetTime_s;
}
if ( (difTime > 2000) &&
(false == CUST_DRIVERS_PRM_isWritePending()) )
{
resetRequired_s = false;
return resetServiceFlag_s;
}
}
return -1;
}
bool EI_APP_PERM_getConfigChanged(void)
{
if (configChanged_s)
{
configChanged_s = false;
return true;
}
else
{
return false;
}
}
ETHIP_API uint32_t EI_API_ADP_getIntfConfig(T *pAdp_p, uint8_t intfId_p, EI_API_ADP_UIntfConf_t *pIntfConf_p)
Get the current adapter configuration of interface with the specified ID (Instance Attribute ID: 6).
Definition: EI_API_ADP_main.c:5419
ETHIP_API uint32_t EI_API_ADP_setIntfConfig(T *adp, uint8_t intfId, EI_API_ADP_UIntfConf_t intfConfig)
Set the adapter Ethernet interface configuration (Instance Attribute ID: 6).
Definition: EI_API_ADP_main.c:5496
ETHIP_API uint32_t EI_API_ADP_getQoS(T *pAdp_p, EI_API_ADP_SQos_t *pQoS_p)
Get the current QoS settings (Instance Attribute IDs: 4 - 8).
Definition: EI_API_ADP_main.c:3279
ETHIP_API uint32_t EI_API_ADP_setQoS(T *pAdp_p, const EI_API_ADP_SQos_t *pQos_p)
Set the current QoS settings (Instance Attribute IDs: 4 - 8).
Definition: EI_API_ADP_main.c:3359
ETHIP_API uint32_t EI_API_ADP_getDomainName(T *pAdp_p, char *pDomainName_p)
Get the domain name (Instance Attribute ID: 5).
Definition: EI_API_ADP_main.c:3977
ETHIP_API uint32_t EI_API_ADP_getIpTTL(T *pAdp_p, uint8_t *pIpTTL_p)
Get the current TTL value (Instance Attribute ID: 8).
Definition: EI_API_ADP_main.c:4183
ETHIP_API uint32_t EI_API_ADP_setMcastConfiguration(T *pAdp_p, const EI_API_ADP_SMcastConfig_t *pMcast_p)
Set the current Mcast configuration (Instance Attribute ID: 9).
Definition: EI_API_ADP_main.c:4373
ETHIP_API uint32_t EI_API_ADP_setQuickConnectEnabled(T *pAdp_p, bool quickConnectEnabled_p)
Set the current adapter QuickConnect state (Instance Attribute ID: 12).
Definition: EI_API_ADP_main.c:5139
ETHIP_API uint32_t EI_API_ADP_setHostName(T *pAdp_p, const char *pHostName_p)
Set the host name (Instance Attribute ID: 6).
Definition: EI_API_ADP_main.c:4109
ETHIP_API uint32_t EI_API_ADP_setIpConfig(T *pAdp_p, EIP_SConfigurationControl_t configurationControl_p, uint32_t ipAddr_p, uint32_t netwMask_p, uint32_t gateway_p, uint32_t nameServer1_p, uint32_t nameServer2_p, char *pDomainName_p, bool applyChanges)
Set the IP configuration of the selected adapter (Instance Attribute ID: 3 and 5).
Definition: EI_API_ADP_main.c:3452
ETHIP_API uint32_t EI_API_ADP_setEnipAcdState(T *pAdp_p, uint8_t enipAcdState_p)
Set the current adapter Ethernet IP address conflict detection state (Instance Attribute ID: 11).
Definition: EI_API_ADP_main.c:4637
ETHIP_API uint32_t EI_API_ADP_getIpAddr(T *pAdp_p, uint32_t *pIpAddr_p)
Get the IP address of the selected adapter (Instance Attribute ID: 5).
Definition: EI_API_ADP_main.c:3661
ETHIP_API uint32_t EI_API_ADP_getHostName(T *pAdp_p, char *pHostName_p)
Get the host name (Instance Attribute ID: 6).
Definition: EI_API_ADP_main.c:4041
ETHIP_API uint32_t EI_API_ADP_setEnipAcdHdr(T *pAdp_p, const EI_API_ADP_SParam_t *pEnipAcdHdr_p)
Set the address conflict detection header (Instance Attribute ID: 11).
Definition: EI_API_ADP_main.c:4915
ETHIP_API uint32_t EI_API_ADP_getEnipAcdAddr(T *pAdp_p, EI_API_ADP_SParam_t *pEnipAcdAddr_p)
Get the adapter address conflict detection MAC address (Instance Attribute ID: 11).
Definition: EI_API_ADP_main.c:4699
ETHIP_API uint32_t EI_API_ADP_getConfigurationControl(T *pAdp_p, EIP_SConfigurationControl_t *pConfigurationControl_p)
Get the current configuration control setting (Instance Attribute ID: 3).
Definition: EI_API_ADP_main.c:3537
ETHIP_API uint32_t EI_API_ADP_isHwSettingEnabled(T *pAdp_p, bool *pHwConfigEnabled_p)
This function returns the hardware settings.
Definition: EI_API_ADP_main.c:5741
ETHIP_API uint32_t EI_API_ADP_setIpTTL(T *pAdp_p, uint8_t ipTTL_p)
Set the adapter IP TTL value (Instance Attribute ID: 8).
Definition: EI_API_ADP_main.c:4247
ETHIP_API uint32_t EI_API_ADP_getQuickConnectEnabled(T *pAdp_p, bool *pQuickConnectEnabled_p)
Get the current adapter QuickConnect state (Instance Attribute ID: 12).
Definition: EI_API_ADP_main.c:5061
ETHIP_API uint32_t EI_API_ADP_setEnipAcdAddr(T *pAdp_p, const EI_API_ADP_SParam_t *pEnipAcdAddr_p)
Set the address conflict detection MAC address (Instance Attribute ID: 11).
Definition: EI_API_ADP_main.c:4771
ETHIP_API uint32_t EI_API_ADP_getIpNwMask(T *pAdp_p, uint32_t *pIpNwMask_p)
Get the network mask (Instance Attribute ID: 5).
Definition: EI_API_ADP_main.c:3724
ETHIP_API uint32_t EI_API_ADP_getEnipAcdState(T *pAdp_p, uint8_t *pEnipAcdState_p)
Get the current adapter Ethernet IP address conflict detection status (Instance Attribute ID: 11).
Definition: EI_API_ADP_main.c:4569
ETHIP_API uint32_t EI_API_ADP_getMcastConfiguration(T *pAdp_p, EI_API_ADP_SMcastConfig_t *pMcastConfig_p)
Get the current Mcast configuration (Instance Attribute ID: 9).
Definition: EI_API_ADP_main.c:4309
ETHIP_API uint32_t EI_API_ADP_getACD(T *pAdp_p, bool *pAcdEnabled_p)
Get the current address conflict detection setting (Instance Attribute ID: 10).
Definition: EI_API_ADP_main.c:4444
ETHIP_API uint32_t EI_API_ADP_getIpGateway(T *pAdp_p, uint32_t *pIpGateway_p)
Get the IP address of the default gateway (Instance Attribute ID: 5).
Definition: EI_API_ADP_main.c:3787
ETHIP_API uint32_t EI_API_ADP_getEnipAcdHdr(T *pAdp_p, EI_API_ADP_SParam_t *pEnipAcdHdr_p)
Get the adapter address conflict detection header (Instance Attribute ID: 11).
Definition: EI_API_ADP_main.c:4838
ETHIP_API uint32_t EI_API_ADP_getEncapInactTimeout(T *pAdp_p, uint16_t *pEncapInactTimeout_p)
Get the current adapter encapsulation inactivity timeout (Instance Attribute ID: 13).
Definition: EI_API_ADP_main.c:5205
ETHIP_API uint32_t EI_API_ADP_setEncapInactTimeout(T *pAdp_p, uint16_t encapInactTimeout_p)
Set the current adapter encapsulation inactivity timeout (Instance Attribute ID: 13).
Definition: EI_API_ADP_main.c:5284
ETHIP_API uint32_t EI_API_ADP_getIpSecNameServer(T *pAdp_p, uint32_t *pIpNameServer2_p)
Get the IP address of the secondary name server (Instance Attribute ID: 5).
Definition: EI_API_ADP_main.c:3913
ETHIP_API uint32_t EI_API_ADP_setACD(T *pAdp_p, bool enable_p)
Enable or disable address conflict detection (Instance Attribute ID: 10).
Definition: EI_API_ADP_main.c:4505
ETHIP_API uint32_t EI_API_ADP_getIpPriNameServer(T *pAdp_p, uint32_t *pIpNameServer1_p)
Get the IP address of the primary name server (Instance Attribute ID: 5).
Definition: EI_API_ADP_main.c:3850
ETHIP_API uint32_t EI_API_ADP_setPortEnable(T *pAdp_p, bool portEnable_p)
Set the port state of the Time Sync Object of the current adapter enable or disable (Instance Attribu...
Definition: EI_API_ADP_main.c:2145
ETHIP_API uint32_t EI_API_ADP_setTimeSyncUserDescription(T *pAdp_p, const char *pUserDescription_p)
Set the Description member of UserDescription attribute of the Time Sync object of the adapter (Insta...
Definition: EI_API_ADP_main.c:3188
ETHIP_API uint32_t EI_API_ADP_getPortEnable(T *pAdp_p, bool *pPortEnable_p)
Get the PortEnable attribute state of the Time Sync Object (Instance Attribute ID: 13).
Definition: EI_API_ADP_main.c:2076
ETHIP_API uint32_t EI_API_ADP_getDomainNumber(T *pAdp_p, uint8_t *pDomainNumber_p)
Get the DomainNumber attribute of the Time Sync Object (Instance Attribute ID: 18).
Definition: EI_API_ADP_main.c:2483
ETHIP_API uint32_t EI_API_ADP_getPtpEnable(T *pAdp_p, bool *pPtpEnable_p)
Get the PTPEnable attribute of the Time Sync Object (Instance Attribute ID: 1).
Definition: EI_API_ADP_main.c:1939
ETHIP_API uint32_t EI_API_ADP_setPortLogSyncInterval(T *pAdp_p, int16_t portLogSyncInterval_p)
Set the PortLogSyncInterval in attribute of the Time Sync object of the adapter (Instance Attribute I...
Definition: EI_API_ADP_main.c:2420
ETHIP_API uint32_t EI_API_ADP_setDomainNumber(T *pAdp_p, uint8_t domainNumber_p)
Set the DomainNumber attribute of the Time Sync object of the adapter (Instance Attribute ID: 18).
Definition: EI_API_ADP_main.c:2555
ETHIP_API uint32_t EI_API_ADP_getPortLogSyncInterval(T *pAdp_p, int16_t *pPortLogSyncInterval_p)
Get the PortLogSyncInterval member value of attribute PortLogSyncIntervalCfg of the Time Sync object ...
Definition: EI_API_ADP_main.c:2345
ETHIP_API uint32_t EI_API_ADP_getTimeSyncUserDescription(T *pAdp_p, char *pUserDescription_p)
Get the Description member of the UserDescription attribute of the Time Sync object (Instance Attribu...
Definition: EI_API_ADP_main.c:3109
ETHIP_API uint32_t EI_API_ADP_getPortLogAnnounceInterval(T *pAdp_p, uint16_t *pPortLogAnnounceInterval_p)
Get the PortLogAnnounceInterval attribute of the Time Sync Object (Instance Attribute ID: 14).
Definition: EI_API_ADP_main.c:2208
ETHIP_API uint32_t EI_API_ADP_setPortLogAnnounceInterval(T *pAdp_p, uint16_t portLogAnnounceInterval_p)
Set the PortLogAnnounceInterval of the Time Sync object of the adapter (Instance Attribute ID: 14).
Definition: EI_API_ADP_main.c:2280
ETHIP_API uint32_t EI_API_ADP_setPtpEnable(T *pAdp_p, bool ptpEnable_p)
Enable or disable PTP functionality in the Time Sync Object of the current adapter (Instance Attribut...
Definition: EI_API_ADP_main.c:2012
@ EI_API_CIP_eSC_SETATTRSINGLE
Definition: EI_API_def.h:117
enum EI_API_CIP_ESc EI_API_CIP_ESc_t
Available CIP service codes.
General multi-cast attribute parameter collection.
Definition: EI_API_def.h:240
uint8_t * data
Definition: EI_API_ADP.h:119
Definition: EI_API_ADP.h:117
General QoS attribute parameter collection.
Definition: EI_API_def.h:222
EI_APP_PERM_SCfgHeader_t permHdr
Definition: appPerm.h:51
int16_t portLogSyncInterval
Definition: appPerm.h:78
bool portEnable
Definition: appPerm.h:76
bool quickConnectEnabled
Definition: appPerm.h:87
uint32_t ipAddr
Definition: appPerm.h:54
bool acdActive
Definition: appPerm.h:65
uint8_t aAcdAddr[6]
Definition: appPerm.h:67
uint16_t encapInactTimeout
Definition: appPerm.h:69
uint8_t acdState
Definition: appPerm.h:66
uint8_t ttlValue
Definition: appPerm.h:64
uint8_t aAcdHdr[28]
Definition: appPerm.h:68
uint16_t portLogAnnounceInterval
Definition: appPerm.h:77
char aUserDescription[128]
Definition: appPerm.h:80
bool ptpEnable
Definition: appPerm.h:75
EI_API_ADP_SQos_t qosParameter
Definition: appPerm.h:83
uint8_t domainNumber
Definition: appPerm.h:79
EIP_EConfigurationMethod_t configurationMethod
Definition: EI_API_ADP.h:234
bool dnsEnable
Definition: EI_API_ADP.h:235
uint32_t reserved
Definition: EI_API_ADP.h:236
Definition: EI_API_ADP.h:233
uint8_t all
Definition: EI_API_def.h:214
Structure to use as function parameter (attribute parameters)
Definition: EI_API_def.h:213