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: definitions for all EPL-function return codes 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: EplErrDef.h,v $ 53 54 $Author: D.Krueger $ 55 56 $Revision: 1.9 $ $Date: 2008/06/23 14:56:33 $ 57 58 $State: Exp $ 59 60 Build Environment: 61 all 62 63 ------------------------------------------------------------------------- 64 65 Revision History: 66 67 2005/12/05 -as: start of the implementation, version 1.00 68 69 ****************************************************************************/ 70 71 #ifndef _EPL_ERRORDEF_H_ 72 #define _EPL_ERRORDEF_H_ 73 74 //--------------------------------------------------------------------------- 75 // return codes 76 //--------------------------------------------------------------------------- 77 78 typedef enum { 79 // area for generic errors 0x0000 - 0x000F 80 kEplSuccessful = 0x0000, // no error/successful run 81 kEplIllegalInstance = 0x0001, // the called Instanz does not exist 82 kEplInvalidInstanceParam = 0x0002, // 83 kEplNoFreeInstance = 0x0003, // XxxAddInstance was called but no free instance is available 84 kEplWrongSignature = 0x0004, // wrong signature while writing to object 0x1010 or 0x1011 85 kEplInvalidOperation = 0x0005, // operation not allowed in this situation 86 kEplInvalidNodeId = 0x0007, // invalid NodeId was specified 87 kEplNoResource = 0x0008, // resource could not be created (Windows, PxROS, ...) 88 kEplShutdown = 0x0009, // stack is shutting down 89 kEplReject = 0x000A, // reject the subsequent command 90 91 // area for EDRV module 0x0010 - 0x001F 92 // kEplEdrvNoFrame = 0x0010, // no CAN message was received 93 // kEplEdrvMsgHigh = 0x0011, // CAN message with high priority was received 94 // kEplEdrvMsgLow = 0x0012, // CAN message with low priority was received 95 kEplEdrvInitError = 0x0013, // initialisation error 96 kEplEdrvNoFreeBufEntry = 0x0014, // no free entry in internal buffer table for Tx frames 97 kEplEdrvBufNotExisting = 0x0015, // specified Tx buffer does not exist 98 // kEplEdrvNoFreeChannel = 0x0014, // CAN controller has not a free channel 99 // kEplEdrvTxBuffHighOverrun = 0x0015, // buffer for high priority CAN transmit messages has overrun 100 // kEplEdrvTxBuffLowOverrun = 0x0016, // buffer for low priority CAN transmit messages has overrun 101 // kEplEdrvIllegalBdi = 0x0017, // unsupported baudrate within baudrate table 102 // kEplEdrvBusy = 0x0018, // remote frame can not be updated because no bus contact or CAN 103 // transmission is activ 104 // kEplEdrvInvalidDriverType = 0x0019, // (PC: Windows or Linux) invalid driver type 105 // kEplEdrvDriverNotFound = 0x001A, // (PC: Windows or Linux) driver (DLL) could not be found 106 // kEplEdrvInvalidBaseAddress = 0x001B, // (PC: Windows or Linux) driver could not found the CAN controller 107 // kEplEdrvInvalidParam = 0x001C, // invalid param in function call 108 109 // area for COB module 0x0020 - 0x002F 110 /* kEplCobNoFreeEntry = 0x0020, // no free entry in RX- or TX-COB table 111 kEplCobAlreadyExist = 0x0021, // COB-ID already exists in RX- resp. TX-COB table 112 */ 113 kEplDllIllegalHdl = 0x0022, // illegal handle for a TxFrame was passed 114 kEplDllCbAsyncRegistered = 0x0023, // handler for non-EPL frames was already registered before 115 // kEplDllAsyncRxBufferFull = 0x0024, // receive buffer for asynchronous frames is full 116 kEplDllAsyncTxBufferEmpty = 0x0025, // transmit buffer for asynchronous frames is empty 117 kEplDllAsyncTxBufferFull = 0x0026, // transmit buffer for asynchronous frames is full 118 kEplDllNoNodeInfo = 0x0027, // MN: too less space in the internal node info structure 119 kEplDllInvalidParam = 0x0028, // invalid parameters passed to function 120 kEplDllTxBufNotReady = 0x002E, // TxBuffer (e.g. for PReq) is not ready yet 121 kEplDllTxFrameInvalid = 0x002F, // TxFrame (e.g. for PReq) is invalid or does not exist 122 /* kEplCobIllegalCanId = 0x0023, // COB-ID is not allowed (like 0x000 is reserved for NMT, ...) 123 kEplCobInvalidCanId = 0x0024, // COB-ID is switched off 124 kEplCobCdrvStateSet = 0x0025, // at least one bit of CAN driver state is set 125 kEplCobNoFreeEntryHighBuf = 0x0026, // no free entry in high priotity RX- or TX-COB table 126 kEplCobOwnId = 0x0027, // COB-ID already exists in own module which calls CobDefine() or CobCheck() 127 */ 128 // area for OBD module 0x0030 - 0x003F 129 kEplObdIllegalPart = 0x0030, // unknown OD part 130 kEplObdIndexNotExist = 0x0031, // object index does not exist in OD 131 kEplObdSubindexNotExist = 0x0032, // subindex does not exist in object index 132 kEplObdReadViolation = 0x0033, // read access to a write-only object 133 kEplObdWriteViolation = 0x0034, // write access to a read-only object 134 kEplObdAccessViolation = 0x0035, // access not allowed 135 kEplObdUnknownObjectType = 0x0036, // object type not defined/known 136 kEplObdVarEntryNotExist = 0x0037, // object does not contain VarEntry structure 137 kEplObdValueTooLow = 0x0038, // value to write to an object is too low 138 kEplObdValueTooHigh = 0x0039, // value to write to an object is too high 139 kEplObdValueLengthError = 0x003A, // value to write is to long or to short 140 // kEplObdIllegalFloat = 0x003B, // illegal float variable 141 // kEplObdWrongOdBuilderKey = 0x003F, // OD was generated with demo version of tool ODBuilder 142 143 // area for NMT module 0x0040 - 0x004F 144 kEplNmtUnknownCommand = 0x0040, // unknown NMT command 145 kEplNmtInvalidFramePointer = 0x0041, // pointer to the frame is not valid 146 kEplNmtInvalidEvent = 0x0042, // invalid event send to NMT-modul 147 kEplNmtInvalidState = 0x0043, // unknown state in NMT-State-Maschine 148 kEplNmtInvalidParam = 0x0044, // invalid parameters specified 149 150 // area for SDO/UDP module 0x0050 - 0x005F 151 kEplSdoUdpMissCb = 0x0050, // missing callback-function pointer during inti of 152 // module 153 kEplSdoUdpNoSocket = 0x0051, // error during init of socket 154 kEplSdoUdpSocketError = 0x0052, // error during usage of socket 155 kEplSdoUdpThreadError = 0x0053, // error during start of listen thread 156 kEplSdoUdpNoFreeHandle = 0x0054, // no free connection handle for Udp 157 kEplSdoUdpSendError = 0x0055, // Error during send of frame 158 kEplSdoUdpInvalidHdl = 0x0056, // the connection handle is invalid 159 160 // area for SDO Sequence layer module 0x0060 - 0x006F 161 kEplSdoSeqMissCb = 0x0060, // no callback-function assign 162 kEplSdoSeqNoFreeHandle = 0x0061, // no free handle for connection 163 kEplSdoSeqInvalidHdl = 0x0062, // invalid handle in SDO sequence layer 164 kEplSdoSeqUnsupportedProt = 0x0063, // unsupported Protocol selected 165 kEplSdoSeqNoFreeHistory = 0x0064, // no free entry in history 166 kEplSdoSeqFrameSizeError = 0x0065, // the size of the frames is not correct 167 kEplSdoSeqRequestAckNeeded = 0x0066, // indeicates that the history buffer is full 168 // and a ack request is needed 169 kEplSdoSeqInvalidFrame = 0x0067, // frame not valid 170 kEplSdoSeqConnectionBusy = 0x0068, // connection is busy -> retry later 171 kEplSdoSeqInvalidEvent = 0x0069, // invalid event received 172 173 // area for SDO Command Layer Module 0x0070 - 0x007F 174 kEplSdoComUnsupportedProt = 0x0070, // unsupported Protocol selected 175 kEplSdoComNoFreeHandle = 0x0071, // no free handle for connection 176 kEplSdoComInvalidServiceType = 0x0072, // invalid SDO service type specified 177 kEplSdoComInvalidHandle = 0x0073, // handle invalid 178 kEplSdoComInvalidSendType = 0x0074, // the stated to of frame to send is 179 // not possible 180 kEplSdoComNotResponsible = 0x0075, // internal error: command layer handle is 181 // not responsible for this event from sequence layer 182 kEplSdoComHandleExists = 0x0076, // handle to same node already exists 183 kEplSdoComHandleBusy = 0x0077, // transfer via this handle is already running 184 kEplSdoComInvalidParam = 0x0078, // invalid parameters passed to function 185 186 // area for EPL Event-Modul 0x0080 - 0x008F 187 kEplEventUnknownSink = 0x0080, // unknown sink for event 188 kEplEventPostError = 0x0081, // error during post of event 189 190 // area for EPL Timer Modul 0x0090 - 0x009F 191 kEplTimerInvalidHandle = 0x0090, // invalid handle for timer 192 kEplTimerNoTimerCreated = 0x0091, // no timer was created caused by 193 // an error 194 195 // area for EPL SDO/Asnd Module 0x00A0 - 0x0AF 196 kEplSdoAsndInvalidNodeId = 0x00A0, //0 node id is invalid 197 kEplSdoAsndNoFreeHandle = 0x00A1, // no free handle for connection 198 kEplSdoAsndInvalidHandle = 0x00A2, // handle for connection is invalid 199 200 // area for PDO module 0x00B0 - 0x00BF 201 kEplPdoNotExist = 0x00B0, // selected PDO does not exist 202 kEplPdoLengthExceeded = 0x00B1, // length of PDO mapping exceedes 64 bis 203 kEplPdoGranularityMismatch = 0x00B2, // configured PDO granularity is not equal to supported granularity 204 kEplPdoInitError = 0x00B3, // error during initialisation of PDO module 205 kEplPdoErrorPdoEncode = 0x00B4, // error during encoding a PDO 206 kEplPdoErrorPdoDecode = 0x00B5, // error during decoding a PDO 207 kEplPdoErrorSend = 0x00B6, // error during sending a PDO 208 kEplPdoErrorSyncWin = 0x00B7, // the SYNC window runs out during sending SYNC-PDOs 209 kEplPdoErrorMapp = 0x00B8, // invalid PDO mapping 210 kEplPdoVarNotFound = 0x00B9, // variable was not found in function PdoSignalVar() 211 kEplPdoErrorEmcyPdoLen = 0x00BA, // the length of a received PDO is unequal to the expected value 212 kEplPdoWriteConstObject = 0x00BB, // constant object can not be written 213 // (only TxType, Inhibit-, Event Time for CANopen Kit) 214 215 // area for LSS slave module 216 /* kEplLsssResetNode = 0x0080, // NMT command "reset node" has to be processed after LSS configuration 217 // new of NodeId 218 kEplLsssInvalidNodeId = 0x0081, // no valid NodeId is configured -> wait until it is configured with 219 // LSS service before calling CcmConnectToNet() 220 */ 221 // area for emergency consumer module 0x0090 - 0x009F 222 /* kEplEmccNoFreeProducerEntry = 0x0090, // no free entry to add a Emergency Producer 223 kEplEmccNodeIdNotExist = 0x0091, // selected NodeId was never added 224 kEplEmccNodeIdInvalid = 0x0092, // selected NodeId is outside of range (0x01 until 0x7F) 225 kEplEmccNodeIdExist = 0x0093, // selected NodeId already exist 226 */ 227 // area for dynamic OD 0x00A0 - 0x00AF 228 /* kEplDynNoMemory = 0x00A0, // no memory available 229 kEplDynInvalidConfig = 0x00A1, // invalid configuration in segment container 230 */ 231 // area for hertbeat consumer module 0x00B0 - 0x00BF 232 /* kEplHbcEntryNotExist = 0x00B0, // Heartbeat Producer node not configured 233 kEplHbcEntryAlreadyExist = 0x00B1, // NodeId was already defined in heartbeat consumer table (object 0x1016) 234 */ 235 // Configuration manager module 0x00C0 - 0x00CF 236 kEplCfgMaConfigError = 0x00C0, // error in configuration manager 237 kEplCfgMaSdocTimeOutError = 0x00C1, // error in configuration manager, Sdo timeout 238 kEplCfgMaInvalidDcf = 0x00C2, // configration file not valid 239 kEplCfgMaUnsupportedDcf = 0x00C3, // unsupported Dcf format 240 kEplCfgMaConfigWithErrors = 0x00C4, // configuration finished with errors 241 kEplCfgMaNoFreeConfig = 0x00C5, // no free configuration entry 242 kEplCfgMaNoConfigData = 0x00C6, // no configuration data present 243 kEplCfgMaUnsuppDatatypeDcf = 0x00C7, // unsupported datatype found in dcf 244 // -> this entry was not configured 245 246 // area for LSS master module 0x00D0 - 0x00DF 247 /* kEplLssmIllegalMode = 0x00D0, // illegal LSS mode (operation / configuration) 248 kEplLssmIllegalState = 0x00D1, // function was called in illegal state of LSS master 249 kEplLssmBusy = 0x00D2, // LSS process is busy with an previous service 250 kEplLssmIllegalCmd = 0x00D3, // illegal command code was set for function LssmInquireIdentity() 251 kEplLssmTimeout = 0x00D4, // LSS slave did not answer a LSS service 252 kEplLssmErrorInConfirm = 0x00D5, // LSS slave replied an error code for a LSS service 253 */ 254 // area for CCM modules 0x00E0 - 0xEF 255 /* kEplCcmStoreUnvalidState = 0x00E0, // memory device not available due device state 256 kEplCcmStoreHwError = 0x00E1, // hw error due device access 257 */ 258 // area for SRDO module 0x0100 - 0x011F 259 /* kEplSrdoNotExist = 0x0100, // selected SRDO does not exist 260 kEplSrdoGranularityMismatch = 0x0101, // configured SRDO granularity is not equal to supported granularity 261 kEplSrdoCfgTimingError = 0x0102, // configuration is not ok (Timing) 262 kEplSrdoCfgIdError = 0x0103, // configuration is not ok (CobIds) 263 kEplSrdoCfgCrcError = 0x0104, // configuration is not ok (CRC) 264 kEplSrdoNmtError = 0x0105, // an action was tried in a wrong NMT state 265 kEplSrdoInvalidCfg = 0x0106, // an action was tried with an invald SRDO configuration 266 kEplSrdoInvalid = 0x0107, // an action was tried with an invald SRDO 267 kEplSrdoRxTxConflict = 0x0108, // an transmission was tried with an receive SRDO (or the other way) 268 kEplSrdoIllegalCanId = 0x0109, // the CanId is invalid 269 kEplSrdoCanIdAlreadyInUse = 0x010A, // the CanId is already in use 270 kEplSrdoNotInOrder = 0x010B, // the two messages of a SRDO are not in order 271 kEplSrdoSctTimeout = 0x010C, // timeout of SCT 272 kEplSrdoSrvtTimeout = 0x010D, // timeout of SRVT 273 kEplSrdoCanIdNotValid = 0x010E, // one of received CAN-IDs are not equal to configured one 274 kEplSrdoDlcNotValid = 0x010F, // one of received CAN-DLC are not equal to configured one 275 kEplSrdoErrorMapp = 0x0110, // wrong values in mapping found 276 kEplSrdoDataError = 0x0111, // data of CAN messages are not invers 277 kEplSrdoLengthExceeded = 0x0112, // length of SRDO mapping exceedes 64 bit per CAN-message 278 kEplSrdoNotHandledInApp = 0x0113, // the SRDO error was not handled in AppSrdoError() 279 kEplSrdoOverrun = 0x0114 // a RxSRDO was received but the pevious one was not else processed 280 */ 281 282 kEplApiTaskDeferred = 0x0140, // EPL performs task in background and informs the application (or vice-versa), when it is finished 283 kEplApiInvalidParam = 0x0142, // passed invalid parameters to a function (e.g. invalid node id) 284 285 // area untill 0x07FF is reserved 286 // area for user application from 0x0800 to 0x7FFF 287 288 } tEplKernel; 289 290 #endif 291 //EOF 292 293 // Die letzte Zeile mu� unbedingt eine leere Zeile sein, weil manche Compiler 294 // damit ein Problem haben, wenn das nicht so ist (z.B. GNU oder Borland C++ Builder). 295