Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 1 | /**************************************************************************** |
| 2 | |
| 3 | (c) SYSTEC electronic GmbH, D-07973 Greiz, August-Bebel-Str. 29 |
| 4 | www.systec-electronic.com |
| 5 | |
| 6 | Project: openPOWERLINK |
| 7 | |
| 8 | Description: include file for EPL default constants |
| 9 | |
| 10 | License: |
| 11 | |
| 12 | Redistribution and use in source and binary forms, with or without |
| 13 | modification, are permitted provided that the following conditions |
| 14 | are met: |
| 15 | |
| 16 | 1. Redistributions of source code must retain the above copyright |
| 17 | notice, this list of conditions and the following disclaimer. |
| 18 | |
| 19 | 2. Redistributions in binary form must reproduce the above copyright |
| 20 | notice, this list of conditions and the following disclaimer in the |
| 21 | documentation and/or other materials provided with the distribution. |
| 22 | |
| 23 | 3. Neither the name of SYSTEC electronic GmbH nor the names of its |
| 24 | contributors may be used to endorse or promote products derived |
| 25 | from this software without prior written permission. For written |
| 26 | permission, please contact info@systec-electronic.com. |
| 27 | |
| 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
| 31 | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
| 32 | COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
| 33 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
| 34 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 35 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
| 36 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| 37 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
| 38 | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 39 | POSSIBILITY OF SUCH DAMAGE. |
| 40 | |
| 41 | Severability Clause: |
| 42 | |
| 43 | If a provision of this License is or becomes illegal, invalid or |
| 44 | unenforceable in any jurisdiction, that shall not affect: |
| 45 | 1. the validity or enforceability in that jurisdiction of any other |
| 46 | provision of this License; or |
| 47 | 2. the validity or enforceability in other jurisdictions of that or |
| 48 | any other provision of this License. |
| 49 | |
| 50 | ------------------------------------------------------------------------- |
| 51 | |
| 52 | $RCSfile: EplDef.h,v $ |
| 53 | |
| 54 | $Author: D.Krueger $ |
| 55 | |
| 56 | $Revision: 1.15 $ $Date: 2008/10/17 15:32:32 $ |
| 57 | |
| 58 | $State: Exp $ |
| 59 | |
| 60 | Build Environment: |
| 61 | GCC V3.4 |
| 62 | |
| 63 | ------------------------------------------------------------------------- |
| 64 | |
| 65 | Revision History: |
| 66 | |
| 67 | 2006/05/22 d.k.: start of the implementation, version 1.00 |
| 68 | |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 69 | ****************************************************************************/ |
| 70 | |
| 71 | #ifndef _EPL_DEF_H_ |
| 72 | #define _EPL_DEF_H_ |
| 73 | |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 74 | //--------------------------------------------------------------------------- |
| 75 | // const defines |
| 76 | //--------------------------------------------------------------------------- |
| 77 | |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 78 | #define EPL_C_ADR_BROADCAST 0xFF // EPL broadcast address |
| 79 | #define EPL_C_ADR_DIAG_DEF_NODE_ID 0xFD // EPL default address of dignostic device |
| 80 | #define EPL_C_ADR_DUMMY_NODE_ID 0xFC // EPL dummy node address |
| 81 | #define EPL_C_ADR_INVALID 0x00 // invalid EPL address |
| 82 | #define EPL_C_ADR_MN_DEF_NODE_ID 0xF0 // EPL default address of MN |
| 83 | #define EPL_C_ADR_RT1_DEF_NODE_ID 0xFE // EPL default address of router type 1 |
| 84 | #define EPL_C_DLL_ASND_PRIO_NMTRQST 7 // increased ASnd request priority to be used by NMT Requests |
| 85 | #define EPL_C_DLL_ASND_PRIO_STD 0 // standard ASnd request priority |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 86 | #define EPL_C_DLL_ETHERTYPE_EPL 0x88AB |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 87 | #define EPL_C_DLL_ISOCHR_MAX_PAYL 1490 // Byte: maximum size of PReq and PRes payload data, requires C_IP_MAX_MTU |
| 88 | #define EPL_C_DLL_MAX_ASYNC_MTU 1500 // Byte: maximum asynchronous payload in bytes |
| 89 | #define EPL_C_DLL_MAX_PAYL_OFFSET 1499 // Byte: maximum offset of Ethernet frame payload, requires C_IP_MAX_MTU |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 90 | #define EPL_C_DLL_MAX_RS 7 |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 91 | #define EPL_C_DLL_MIN_ASYNC_MTU 282 // Byte: minimum asynchronous payload in bytes. |
| 92 | #define EPL_C_DLL_MIN_PAYL_OFFSET 45 // Byte: minimum offset of Ethernet frame payload |
| 93 | #define EPL_C_DLL_MULTICAST_ASND 0x01111E000004LL // EPL ASnd multicast MAC address, canonical form |
| 94 | #define EPL_C_DLL_MULTICAST_PRES 0x01111E000002LL // EPL PRes multicast MAC address, canonical form |
| 95 | #define EPL_C_DLL_MULTICAST_SOA 0x01111E000003LL // EPL SoA multicast MAC address, canonical form |
| 96 | #define EPL_C_DLL_MULTICAST_SOC 0x01111E000001LL // EPL Soc multicast MAC address, canonical form |
| 97 | #define EPL_C_DLL_PREOP1_START_CYCLES 10 // number of unassigning SoA frames at start of NMT_MS_PRE_OPERATIONAL_1 |
| 98 | #define EPL_C_DLL_T_BITTIME 10 // ns: Transmission time per bit on 100 Mbit/s network |
| 99 | #define EPL_C_DLL_T_EPL_PDO_HEADER 10 // Byte: size of PReq and PRes EPL PDO message header |
| 100 | #define EPL_C_DLL_T_ETH2_WRAPPER 18 // Byte: size of Ethernet type II wrapper consisting of header and checksum |
| 101 | #define EPL_C_DLL_T_IFG 640 // ns: Ethernet Interframe Gap |
| 102 | #define EPL_C_DLL_T_MIN_FRAME 5120 // ns: Size of minimum Ethernet frame (without preamble) |
| 103 | #define EPL_C_DLL_T_PREAMBLE 960 // ns: Size of Ethernet frame preamble |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 104 | |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 105 | #define EPL_C_DLL_MINSIZE_SOC 36 // minimum size of SoC without padding and CRC |
| 106 | #define EPL_C_DLL_MINSIZE_PREQ 60 // minimum size of PRec without CRC |
| 107 | #define EPL_C_DLL_MINSIZE_PRES 60 // minimum size of PRes without CRC |
| 108 | #define EPL_C_DLL_MINSIZE_SOA 24 // minimum size of SoA without padding and CRC |
| 109 | #define EPL_C_DLL_MINSIZE_IDENTRES 176 // minimum size of IdentResponse without CRC |
| 110 | #define EPL_C_DLL_MINSIZE_STATUSRES 72 // minimum size of StatusResponse without CRC |
| 111 | #define EPL_C_DLL_MINSIZE_NMTCMD 20 // minimum size of NmtCommand without CommandData, padding and CRC |
| 112 | #define EPL_C_DLL_MINSIZE_NMTCMDEXT 52 // minimum size of NmtCommand without padding and CRC |
| 113 | #define EPL_C_DLL_MINSIZE_NMTREQ 20 // minimum size of NmtRequest without CommandData, padding and CRC |
| 114 | #define EPL_C_DLL_MINSIZE_NMTREQEXT 52 // minimum size of NmtRequest without padding and CRC |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 115 | |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 116 | #define EPL_C_ERR_MONITOR_DELAY 10 // Error monitoring start delay (not used in DS 1.0.0) |
| 117 | #define EPL_C_IP_ADR_INVALID 0x00000000L // invalid IP address (0.0.0.0) used to indicate no change |
| 118 | #define EPL_C_IP_INVALID_MTU 0 // Byte: invalid MTU size used to indicate no change |
| 119 | #define EPL_C_IP_MAX_MTU 1518 // Byte: maximum size in bytes of the IP stack which must be processed. |
| 120 | #define EPL_C_IP_MIN_MTU 300 // Byte: minimum size in bytes of the IP stack which must be processed. |
| 121 | #define EPL_C_NMT_STATE_TOLERANCE 5 // Cycles: maximum reaction time to NMT state commands |
| 122 | #define EPL_C_NMT_STATREQ_CYCLE 5 // sec: StatusRequest cycle time to be applied to AsyncOnly CNs |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 123 | #define EPL_C_SDO_EPL_PORT 3819 |
| 124 | |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 125 | #define EPL_C_DLL_MAX_ASND_SERVICE_IDS 5 // see tEplDllAsndServiceId in EplDll.h |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 126 | |
| 127 | // Default configuration |
| 128 | // ====================== |
| 129 | |
| 130 | #ifndef EPL_D_PDO_Granularity_U8 |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 131 | #define EPL_D_PDO_Granularity_U8 8 // minimum size of objects to be mapped in bits UNSIGNED8 O O 1 1 |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 132 | #endif |
| 133 | |
| 134 | #ifndef EPL_NMT_MAX_NODE_ID |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 135 | #define EPL_NMT_MAX_NODE_ID 254 // maximum node-ID |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 136 | #endif |
| 137 | |
| 138 | #ifndef EPL_D_NMT_MaxCNNumber_U8 |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 139 | #define EPL_D_NMT_MaxCNNumber_U8 239 // maximum number of supported regular CNs in the Node ID range 1 .. 239 UNSIGNED8 O O 239 239 |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 140 | #endif |
| 141 | |
| 142 | // defines for EPL API layer static process image |
| 143 | #ifndef EPL_API_PROCESS_IMAGE_SIZE_IN |
| 144 | #define EPL_API_PROCESS_IMAGE_SIZE_IN 0 |
| 145 | #endif |
| 146 | |
| 147 | #ifndef EPL_API_PROCESS_IMAGE_SIZE_OUT |
| 148 | #define EPL_API_PROCESS_IMAGE_SIZE_OUT 0 |
| 149 | #endif |
| 150 | |
| 151 | // configure whether OD access events shall be forwarded |
| 152 | // to user callback function. |
| 153 | // Because of reentrancy for local OD accesses, this has to be disabled |
| 154 | // when application resides in other address space as the stack (e.g. if |
| 155 | // EplApiLinuxUser.c and EplApiLinuxKernel.c are used) |
| 156 | #ifndef EPL_API_OBD_FORWARD_EVENT |
| 157 | #define EPL_API_OBD_FORWARD_EVENT TRUE |
| 158 | #endif |
| 159 | |
| 160 | #ifndef EPL_OBD_MAX_STRING_SIZE |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 161 | #define EPL_OBD_MAX_STRING_SIZE 32 // is used for objects 0x1008/0x1009/0x100A |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 162 | #endif |
| 163 | |
| 164 | #ifndef EPL_OBD_USE_STORE_RESTORE |
| 165 | #define EPL_OBD_USE_STORE_RESTORE FALSE |
| 166 | #endif |
| 167 | |
| 168 | #ifndef EPL_OBD_CHECK_OBJECT_RANGE |
| 169 | #define EPL_OBD_CHECK_OBJECT_RANGE TRUE |
| 170 | #endif |
| 171 | |
| 172 | #ifndef EPL_OBD_USE_STRING_DOMAIN_IN_RAM |
| 173 | #define EPL_OBD_USE_STRING_DOMAIN_IN_RAM TRUE |
| 174 | #endif |
| 175 | |
| 176 | #ifndef EPL_OBD_USE_VARIABLE_SUBINDEX_TAB |
| 177 | #define EPL_OBD_USE_VARIABLE_SUBINDEX_TAB TRUE |
| 178 | #endif |
| 179 | |
| 180 | #ifndef EPL_OBD_USE_KERNEL |
| 181 | #if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_OBDU)) == 0) |
| 182 | #define EPL_OBD_USE_KERNEL TRUE |
| 183 | #else |
| 184 | #define EPL_OBD_USE_KERNEL FALSE |
| 185 | #endif |
| 186 | #endif |
| 187 | |
| 188 | #ifndef EPL_OBD_INCLUDE_A000_TO_DEVICE_PART |
| 189 | #define EPL_OBD_INCLUDE_A000_TO_DEVICE_PART FALSE |
| 190 | #endif |
| 191 | |
| 192 | #ifndef EPL_VETH_NAME |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 193 | #define EPL_VETH_NAME "epl" // name of net device in Linux |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 194 | #endif |
| 195 | |
| 196 | /* |
| 197 | #define EPL_D_CFG_ConfigManager_BOOL // Ability of a MN node to perform Configuration Manager functions BOOLEAN O - N - |
| 198 | #define EPL_D_CFM_VerifyConf_BOOL // Support of objects CFM_VerifyConfiguration_REC, CFM_ExpConfDateList_AU32, CFM_ExpConfTimeList_AU32 BOOLEAN O O N N |
| 199 | #define EPL_D_CFM_VerifyConfId_BOOL // Support of objects CFM_VerifyConfiguration_REC.ConfId_U32 and CFM_ExpConfIdList_AU32 BOOLEAN O O N N |
| 200 | #define EPL_D_DLL_CNFeatureIsochr_BOOL // CNs ability to perform isochronous functions BOOLEAN - O - Y |
| 201 | #define EPL_D_DLL_CNFeatureMultiplex_BOOL // nodes ability to perform control of multiplexed isochronous communication BOOLEAN - O - N |
| 202 | #define EPL_D_DLL_FeatureCN_BOOL // nodes ability to perform CN functions BOOLEAN O O Y Y |
| 203 | #define EPL_D_DLL_FeatureMN_BOOL // nodes ability to perform MN functions BOOLEAN M O - N |
| 204 | #define EPL_D_DLL_MNFeatureMultiplex_BOOL // MNs ability to perform control of multiplexed isochronous communication BOOLEAN O - Y - |
| 205 | #define EPL_D_DLL_MNFeaturePResTx_BOOL // MNs ability to transmit PRes BOOLEAN O - Y - |
| 206 | #define EPL_D_NMT_ASndRxMaxPayload_U16 // size of ASnd frame receive buffer UNSIGNED16 M M - - |
| 207 | #define EPL_D_NMT_ASndTxMaxPayload_U16 // size of ASnd frame transmit buffer UNSIGNED16 M M - - |
| 208 | #define EPL_D_NMT_CNASnd2SoC_U32 // minimum delay between end of reception of ASnd and start of reception of SoC UNSIGNED32 - M - - |
| 209 | #define EPL_D_NMT_CNASndMaxLatency_U32 // delay between end of SoA reception and start of ASnd transmission UNSIGNED32 - M - - |
| 210 | #define EPL_D_NMT_CNPResMaxLatency_U32 // delay between end of PReq reception and start of PRes transmission UNSIGNED32 - M - - |
| 211 | #define EPL_D_NMT_CNSoC2PReq_U32 // CN SoC handling maximum time, a subsequent PReq wont be handled before SoC handling was finished UNSIGNED32 - M - - |
| 212 | #define EPL_D_NMT_DeviceType_U32 // Device Type ID UNSIGNED32 M M - - |
| 213 | #define EPL_D_NMT_EPLVers_U8 EPL // Version implemented by the device UNSIGNED8 M M - - |
| 214 | #define EPL_D_NMT_ExtStateCmd_BOOL // abitilty to support Extended NMT State Commands BOOLEAN O O Y Y |
| 215 | #define EPL_D_NMT_InfoSvc_BOOL // ability to support NMT Info Services BOOLEAN O - Y - |
| 216 | #define EPL_D_NMT_InterfaceAddr_Xh_OSTR // Physical Address of Interface No. Xh OCTET_STRING M M - - |
| 217 | #define EPL_D_NMT_InterfaceDescr_Xh_VSTR // Description text of Interface No. Xh VISIBLE_STRINGM M - - |
| 218 | #define EPL_D_NMT_InterfaceMtu_Xh_U32 // MTU of Interface No. Xh UNSIGNED32 M M - - |
| 219 | #define EPL_D_NMT_InterfaceType_Xh_U8 // Type of Interface No. Xh UNSIGNED8 M M - - |
| 220 | #define EPL_D_NMT_IsochrRxMaxPayload_U16 // size of isochronous frame receive buffer UNSIGNED16 M M - - |
| 221 | #define EPL_D_NMT_IsochrTxMaxPayload_U16 // size of isochronous frame transmit buffer UNSIGNED16 M M - - |
| 222 | #define EPL_D_NMT_ManufactDevName_VS // Manufacturer Device Name VISIBLE_STRING O O - - |
| 223 | #define EPL_D_NMT_ManufactHwVers_VS // Manufacturer HW version VISIBLE_STRING O O - - |
| 224 | #define EPL_D_NMT_ManufactSwVers_VS // Manufacturer SW version VISIBLE_STRING O O - - |
| 225 | #define EPL_D_NMT_MaxCNNodeID_U8 // maximum Node ID available for regular CNs the entry provides an upper limit to the NodeID available for cross traffic PDO reception from a regular CN UNSIGNED8 O O 239 239 |
| 226 | #define EPL_D_NMT_MaxCNNumber_U8 // maximum number of supported regular CNs in the Node ID range 1 .. 239 UNSIGNED8 O O 239 239 |
| 227 | #define EPL_D_NMT_MaxHeartbeats_U8 // number of guard channels UNSIGNED8 O O 254 254 |
| 228 | #define EPL_D_NMT_MNASnd2SoC_U32 // minimum delay between end of reception of ASnd and start of transmission of SoC UNSIGNED32 M - - - |
| 229 | #define EPL_D_NMT_MNMultiplCycMax_U8 // maximum number of EPL cycles per multiplexed cycle UNSIGNED8 O - 0 - |
| 230 | #define EPL_D_NMT_MNPRes2PReq_U32 // delay between end of PRes reception and start of PReq transmission UNSIGNED32 M - - - |
| 231 | #define EPL_D_NMT_MNPRes2PRes_U32 // delay between end of reception of PRes from CNn and start of transmission of PRes by MN UNSIGNED32 M - - - |
| 232 | #define EPL_D_NMT_MNPResRx2SoA_U32 // delay between end of reception of PRes from CNn and start of transmission of SoA by MN UNSIGNED32 M - - - |
| 233 | #define EPL_D_NMT_MNPResTx2SoA_U32 // delay between end of PRes transmission by MN and start of transmission of SoA by MN UNSIGNED32 M - - - |
| 234 | #define EPL_D_NMT_MNSoA2ASndTx_U32 // delay between end of transmission of SoA and start of transmission of ASnd by MN UNSIGNED32 M - - - |
| 235 | #define EPL_D_NMT_MNSoC2PReq_U32 // MN minimum delay between end of SoC transmission and start of PReq transmission UNSIGNED32 M - - - |
| 236 | #define EPL_D_NMT_NMTSvcViaUDPIP_BOOL // Ability of a node to perform NMT services via UDP/IP BOOLEAN O - Y - |
| 237 | #define EPL_D_NMT_NodeIDByHW_BOOL // Ability of a node to support NodeID setup by HW BOOLEAN O O Y Y |
| 238 | #define EPL_D_NMT_NodeIDBySW_BOOL // Ability of a node to support NodeID setup by SW BOOLEAN O O N N |
| 239 | #define EPL_D_NMT_ProductCode_U32 // Identity Object Product Code UNSIGNED32 M M - - |
| 240 | #define EPL_D_NMT_RevisionNo_U32 // Identity Object Revision Number UNSIGNED32 M M - - |
| 241 | #define EPL_D_NMT_SerialNo_U32 // Identity Object Serial Number UNSIGNED32 M M - - |
| 242 | #define EPL_D_NMT_SimpleBoot_BOOL // Ability of a MN node to perform Simple Boot Process, if not set Indivual Boot Process shall be proviced BOOLEAN M - - - |
| 243 | #define EPL_D_NMT_VendorID_U32 // Identity Object Vendor ID UNSIGNED32 M M - - |
| 244 | #define EPL_D_NWL_Forward_BOOL // Ability of node to forward datagrams BOOLEAN O O N N |
| 245 | #define EPL_D_NWL_IPSupport_BOOL // Ability of the node cummunicate via IP BOOLEAN - - Y Y |
| 246 | #define EPL_D_PDO_DynamicMapping_BOOL // Ability of a node to perform dynamic PDO mapping BOOLEAN O O Y Y |
| 247 | #define EPL_D_PDO_MaxDescrMem_U32 // maximum cumulative memory consumption of TPDO and RPDO describing objects in byte UNSIGNED32 O O MAX_U32 MAX_U32 |
| 248 | #define EPL_D_PDO_RPDOChannels_U8 // number of supported RPDO channels UNSIGNED8 O O 256 256 |
| 249 | #define EPL_D_PDO_RPDOMaxMem_U32 // Maximum memory available for RPDO data per EPL cycle in byte UNSIGNED32 O O MAX_U32 MAX_U32 |
| 250 | #define EPL_D_PDO_RPDOObjects_U8 // Number of supported mapped objects per RPDO channel UNSIGNED8 O O 254 254 |
| 251 | #define EPL_D_PDO_TPDOChannels_U8 // number of supported TPDO channels UNSIGNED8 O - 256 - |
| 252 | #define EPL_D_PDO_TPDOMaxMem_U32 // Maximum memory available for TPDO data per EPL cycle in byte UNSIGNED32 O O MAX_U32 MAX_U32 |
| 253 | #define EPL_D_PDO_TPDOObjects_U8 // Number of supported mapped objects per TPDO channel UNSIGNED8 O O 254 254 |
| 254 | #define EPL_D_SDO_ViaASnd_BOOL // Ability of a CN to perform SDO transfer by EPL ASnd BOOLEAN - M - - |
| 255 | #define EPL_D_SDO_ViaPDO_BOOL // Ability of a node to perform SDO transfer by PDO BOOLEAN O O N N |
| 256 | #define EPL_D_SDO_ViaUDPIP_BOOL // Ability of a CN to perform SDO transfer by UDP/IP BOOLEAN - M - - |
| 257 | #define EPL_D_SYN_OptimizedSync_BOOL // Ability of node to perform optimized synchronisation BOOLEAN O O N N |
| 258 | */ |
| 259 | |
| 260 | // Emergency error codes |
| 261 | // ====================== |
| 262 | #define EPL_E_NO_ERROR 0x0000 |
| 263 | // 0xFxxx manufacturer specific error codes |
| 264 | #define EPL_E_NMT_NO_IDENT_RES 0xF001 |
| 265 | #define EPL_E_NMT_NO_STATUS_RES 0xF002 |
| 266 | |
| 267 | // 0x816x HW errors |
| 268 | #define EPL_E_DLL_BAD_PHYS_MODE 0x8161 |
| 269 | #define EPL_E_DLL_COLLISION 0x8162 |
| 270 | #define EPL_E_DLL_COLLISION_TH 0x8163 |
| 271 | #define EPL_E_DLL_CRC_TH 0x8164 |
| 272 | #define EPL_E_DLL_LOSS_OF_LINK 0x8165 |
| 273 | #define EPL_E_DLL_MAC_BUFFER 0x8166 |
| 274 | // 0x82xx Protocol errors |
| 275 | #define EPL_E_DLL_ADDRESS_CONFLICT 0x8201 |
| 276 | #define EPL_E_DLL_MULTIPLE_MN 0x8202 |
| 277 | // 0x821x Frame size errors |
| 278 | #define EPL_E_PDO_SHORT_RX 0x8210 |
| 279 | #define EPL_E_PDO_MAP_VERS 0x8211 |
| 280 | #define EPL_E_NMT_ASND_MTU_DIF 0x8212 |
| 281 | #define EPL_E_NMT_ASND_MTU_LIM 0x8213 |
| 282 | #define EPL_E_NMT_ASND_TX_LIM 0x8214 |
| 283 | // 0x823x Timing errors |
| 284 | #define EPL_E_NMT_CYCLE_LEN 0x8231 |
| 285 | #define EPL_E_DLL_CYCLE_EXCEED 0x8232 |
| 286 | #define EPL_E_DLL_CYCLE_EXCEED_TH 0x8233 |
| 287 | #define EPL_E_NMT_IDLE_LIM 0x8234 |
| 288 | #define EPL_E_DLL_JITTER_TH 0x8235 |
| 289 | #define EPL_E_DLL_LATE_PRES_TH 0x8236 |
| 290 | #define EPL_E_NMT_PREQ_CN 0x8237 |
| 291 | #define EPL_E_NMT_PREQ_LIM 0x8238 |
| 292 | #define EPL_E_NMT_PRES_CN 0x8239 |
| 293 | #define EPL_E_NMT_PRES_RX_LIM 0x823A |
| 294 | #define EPL_E_NMT_PRES_TX_LIM 0x823B |
| 295 | // 0x824x Frame errors |
| 296 | #define EPL_E_DLL_INVALID_FORMAT 0x8241 |
| 297 | #define EPL_E_DLL_LOSS_PREQ_TH 0x8242 |
| 298 | #define EPL_E_DLL_LOSS_PRES_TH 0x8243 |
| 299 | #define EPL_E_DLL_LOSS_SOA_TH 0x8244 |
| 300 | #define EPL_E_DLL_LOSS_SOC_TH 0x8245 |
| 301 | // 0x84xx BootUp Errors |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 302 | #define EPL_E_NMT_BA1 0x8410 // other MN in MsNotActive active |
| 303 | #define EPL_E_NMT_BA1_NO_MN_SUPPORT 0x8411 // MN is not supported |
| 304 | #define EPL_E_NMT_BPO1 0x8420 // mandatory CN was not found or failed in BootStep1 |
| 305 | #define EPL_E_NMT_BPO1_GET_IDENT 0x8421 // IdentRes was not received |
| 306 | #define EPL_E_NMT_BPO1_DEVICE_TYPE 0x8422 // wrong device type |
| 307 | #define EPL_E_NMT_BPO1_VENDOR_ID 0x8423 // wrong vendor ID |
| 308 | #define EPL_E_NMT_BPO1_PRODUCT_CODE 0x8424 // wrong product code |
| 309 | #define EPL_E_NMT_BPO1_REVISION_NO 0x8425 // wrong revision number |
| 310 | #define EPL_E_NMT_BPO1_SERIAL_NO 0x8426 // wrong serial number |
| 311 | #define EPL_E_NMT_BPO1_CF_VERIFY 0x8428 // verification of configuration failed |
| 312 | #define EPL_E_NMT_BPO2 0x8430 // mandatory CN failed in BootStep2 |
| 313 | #define EPL_E_NMT_BRO 0x8440 // CheckCommunication failed for mandatory CN |
| 314 | #define EPL_E_NMT_WRONG_STATE 0x8480 // mandatory CN has wrong NMT state |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 315 | |
| 316 | // Defines for object 0x1F80 NMT_StartUp_U32 |
| 317 | // ========================================== |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 318 | #define EPL_NMTST_STARTALLNODES 0x00000002L // Bit 1 |
| 319 | #define EPL_NMTST_NO_AUTOSTART 0x00000004L // Bit 2 |
| 320 | #define EPL_NMTST_NO_STARTNODE 0x00000008L // Bit 3 |
| 321 | #define EPL_NMTST_RESETALL_MAND_CN 0x00000010L // Bit 4 |
| 322 | #define EPL_NMTST_STOPALL_MAND_CN 0x00000040L // Bit 6 |
| 323 | #define EPL_NMTST_NO_AUTOPREOP2 0x00000080L // Bit 7 |
| 324 | #define EPL_NMTST_NO_AUTOREADYTOOP 0x00000100L // Bit 8 |
| 325 | #define EPL_NMTST_EXT_CNIDENTCHECK 0x00000200L // Bit 9 |
| 326 | #define EPL_NMTST_SWVERSIONCHECK 0x00000400L // Bit 10 |
| 327 | #define EPL_NMTST_CONFCHECK 0x00000800L // Bit 11 |
| 328 | #define EPL_NMTST_NO_RETURN_PREOP1 0x00001000L // Bit 12 |
| 329 | #define EPL_NMTST_BASICETHERNET 0x00002000L // Bit 13 |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 330 | |
| 331 | // Defines for object 0x1F81 NMT_NodeAssignment_AU32 |
| 332 | // ================================================== |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 333 | #define EPL_NODEASSIGN_NODE_EXISTS 0x00000001L // Bit 0 |
| 334 | #define EPL_NODEASSIGN_NODE_IS_CN 0x00000002L // Bit 1 |
| 335 | #define EPL_NODEASSIGN_START_CN 0x00000004L // Bit 2 |
| 336 | #define EPL_NODEASSIGN_MANDATORY_CN 0x00000008L // Bit 3 |
| 337 | #define EPL_NODEASSIGN_KEEPALIVE 0x00000010L //currently not used in EPL V2 standard |
| 338 | #define EPL_NODEASSIGN_SWVERSIONCHECK 0x00000020L // Bit 5 |
| 339 | #define EPL_NODEASSIGN_SWUPDATE 0x00000040L // Bit 6 |
| 340 | #define EPL_NODEASSIGN_ASYNCONLY_NODE 0x00000100L // Bit 8 |
| 341 | #define EPL_NODEASSIGN_MULTIPLEXED_CN 0x00000200L // Bit 9 |
| 342 | #define EPL_NODEASSIGN_RT1 0x00000400L // Bit 10 |
| 343 | #define EPL_NODEASSIGN_RT2 0x00000800L // Bit 11 |
| 344 | #define EPL_NODEASSIGN_MN_PRES 0x00001000L // Bit 12 |
| 345 | #define EPL_NODEASSIGN_VALID 0x80000000L // Bit 31 |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 346 | |
| 347 | //--------------------------------------------------------------------------- |
| 348 | // typedef |
| 349 | //--------------------------------------------------------------------------- |
| 350 | |
Daniel Krueger | 9d7164c | 2008-12-19 11:41:57 -0800 | [diff] [blame] | 351 | //--------------------------------------------------------------------------- |
| 352 | // function prototypes |
| 353 | //--------------------------------------------------------------------------- |
| 354 | |
Greg Kroah-Hartman | e0ca059 | 2008-12-19 17:09:38 -0800 | [diff] [blame] | 355 | #endif // #ifndef _EPL_DEF_H_ |