303 lines
19 KiB
C
303 lines
19 KiB
C
|
/****************************************************************************
|
|||
|
|
|||
|
(c) SYSTEC electronic GmbH, D-07973 Greiz, August-Bebel-Str. 29
|
|||
|
www.systec-electronic.com
|
|||
|
|
|||
|
Project: openPOWERLINK
|
|||
|
|
|||
|
Description: definitions for all EPL-function return codes
|
|||
|
|
|||
|
License:
|
|||
|
|
|||
|
Redistribution and use in source and binary forms, with or without
|
|||
|
modification, are permitted provided that the following conditions
|
|||
|
are met:
|
|||
|
|
|||
|
1. Redistributions of source code must retain the above copyright
|
|||
|
notice, this list of conditions and the following disclaimer.
|
|||
|
|
|||
|
2. Redistributions in binary form must reproduce the above copyright
|
|||
|
notice, this list of conditions and the following disclaimer in the
|
|||
|
documentation and/or other materials provided with the distribution.
|
|||
|
|
|||
|
3. Neither the name of SYSTEC electronic GmbH nor the names of its
|
|||
|
contributors may be used to endorse or promote products derived
|
|||
|
from this software without prior written permission. For written
|
|||
|
permission, please contact info@systec-electronic.com.
|
|||
|
|
|||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|||
|
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|||
|
COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|||
|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|||
|
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|||
|
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|||
|
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|||
|
POSSIBILITY OF SUCH DAMAGE.
|
|||
|
|
|||
|
Severability Clause:
|
|||
|
|
|||
|
If a provision of this License is or becomes illegal, invalid or
|
|||
|
unenforceable in any jurisdiction, that shall not affect:
|
|||
|
1. the validity or enforceability in that jurisdiction of any other
|
|||
|
provision of this License; or
|
|||
|
2. the validity or enforceability in other jurisdictions of that or
|
|||
|
any other provision of this License.
|
|||
|
|
|||
|
-------------------------------------------------------------------------
|
|||
|
|
|||
|
$RCSfile: EplErrDef.h,v $
|
|||
|
|
|||
|
$Author: D.Krueger $
|
|||
|
|
|||
|
$Revision: 1.9 $ $Date: 2008/06/23 14:56:33 $
|
|||
|
|
|||
|
$State: Exp $
|
|||
|
|
|||
|
Build Environment:
|
|||
|
all
|
|||
|
|
|||
|
-------------------------------------------------------------------------
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
2005/12/05 -as: start of the implementation, version 1.00
|
|||
|
|
|||
|
****************************************************************************/
|
|||
|
|
|||
|
#ifndef _EPL_ERRORDEF_H_
|
|||
|
#define _EPL_ERRORDEF_H_
|
|||
|
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
// return codes
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
typedef enum
|
|||
|
{
|
|||
|
// area for generic errors 0x0000 - 0x000F
|
|||
|
kEplSuccessful = 0x0000, // no error/successful run
|
|||
|
kEplIllegalInstance = 0x0001, // the called Instanz does not exist
|
|||
|
kEplInvalidInstanceParam = 0x0002, //
|
|||
|
kEplNoFreeInstance = 0x0003, // XxxAddInstance was called but no free instance is available
|
|||
|
kEplWrongSignature = 0x0004, // wrong signature while writing to object 0x1010 or 0x1011
|
|||
|
kEplInvalidOperation = 0x0005, // operation not allowed in this situation
|
|||
|
kEplInvalidNodeId = 0x0007, // invalid NodeId was specified
|
|||
|
kEplNoResource = 0x0008, // resource could not be created (Windows, PxROS, ...)
|
|||
|
kEplShutdown = 0x0009, // stack is shutting down
|
|||
|
kEplReject = 0x000A, // reject the subsequent command
|
|||
|
|
|||
|
// area for EDRV module 0x0010 - 0x001F
|
|||
|
// kEplEdrvNoFrame = 0x0010, // no CAN message was received
|
|||
|
// kEplEdrvMsgHigh = 0x0011, // CAN message with high priority was received
|
|||
|
// kEplEdrvMsgLow = 0x0012, // CAN message with low priority was received
|
|||
|
kEplEdrvInitError = 0x0013, // initialisation error
|
|||
|
kEplEdrvNoFreeBufEntry = 0x0014, // no free entry in internal buffer table for Tx frames
|
|||
|
kEplEdrvBufNotExisting = 0x0015, // specified Tx buffer does not exist
|
|||
|
// kEplEdrvNoFreeChannel = 0x0014, // CAN controller has not a free channel
|
|||
|
// kEplEdrvTxBuffHighOverrun = 0x0015, // buffer for high priority CAN transmit messages has overrun
|
|||
|
// kEplEdrvTxBuffLowOverrun = 0x0016, // buffer for low priority CAN transmit messages has overrun
|
|||
|
// kEplEdrvIllegalBdi = 0x0017, // unsupported baudrate within baudrate table
|
|||
|
// kEplEdrvBusy = 0x0018, // remote frame can not be updated because no bus contact or CAN
|
|||
|
// transmission is activ
|
|||
|
// kEplEdrvInvalidDriverType = 0x0019, // (PC: Windows or Linux) invalid driver type
|
|||
|
// kEplEdrvDriverNotFound = 0x001A, // (PC: Windows or Linux) driver (DLL) could not be found
|
|||
|
// kEplEdrvInvalidBaseAddress = 0x001B, // (PC: Windows or Linux) driver could not found the CAN controller
|
|||
|
// kEplEdrvInvalidParam = 0x001C, // invalid param in function call
|
|||
|
|
|||
|
// area for COB module 0x0020 - 0x002F
|
|||
|
/* kEplCobNoFreeEntry = 0x0020, // no free entry in RX- or TX-COB table
|
|||
|
kEplCobAlreadyExist = 0x0021, // COB-ID already exists in RX- resp. TX-COB table
|
|||
|
*/
|
|||
|
kEplDllIllegalHdl = 0x0022, // illegal handle for a TxFrame was passed
|
|||
|
kEplDllCbAsyncRegistered = 0x0023, // handler for non-EPL frames was already registered before
|
|||
|
// kEplDllAsyncRxBufferFull = 0x0024, // receive buffer for asynchronous frames is full
|
|||
|
kEplDllAsyncTxBufferEmpty = 0x0025, // transmit buffer for asynchronous frames is empty
|
|||
|
kEplDllAsyncTxBufferFull = 0x0026, // transmit buffer for asynchronous frames is full
|
|||
|
kEplDllNoNodeInfo = 0x0027, // MN: too less space in the internal node info structure
|
|||
|
kEplDllInvalidParam = 0x0028, // invalid parameters passed to function
|
|||
|
kEplDllTxBufNotReady = 0x002E, // TxBuffer (e.g. for PReq) is not ready yet
|
|||
|
kEplDllTxFrameInvalid = 0x002F, // TxFrame (e.g. for PReq) is invalid or does not exist
|
|||
|
/* kEplCobIllegalCanId = 0x0023, // COB-ID is not allowed (like 0x000 is reserved for NMT, ...)
|
|||
|
kEplCobInvalidCanId = 0x0024, // COB-ID is switched off
|
|||
|
kEplCobCdrvStateSet = 0x0025, // at least one bit of CAN driver state is set
|
|||
|
kEplCobNoFreeEntryHighBuf = 0x0026, // no free entry in high priotity RX- or TX-COB table
|
|||
|
kEplCobOwnId = 0x0027, // COB-ID already exists in own module which calls CobDefine() or CobCheck()
|
|||
|
*/
|
|||
|
// area for OBD module 0x0030 - 0x003F
|
|||
|
kEplObdIllegalPart = 0x0030, // unknown OD part
|
|||
|
kEplObdIndexNotExist = 0x0031, // object index does not exist in OD
|
|||
|
kEplObdSubindexNotExist = 0x0032, // subindex does not exist in object index
|
|||
|
kEplObdReadViolation = 0x0033, // read access to a write-only object
|
|||
|
kEplObdWriteViolation = 0x0034, // write access to a read-only object
|
|||
|
kEplObdAccessViolation = 0x0035, // access not allowed
|
|||
|
kEplObdUnknownObjectType = 0x0036, // object type not defined/known
|
|||
|
kEplObdVarEntryNotExist = 0x0037, // object does not contain VarEntry structure
|
|||
|
kEplObdValueTooLow = 0x0038, // value to write to an object is too low
|
|||
|
kEplObdValueTooHigh = 0x0039, // value to write to an object is too high
|
|||
|
kEplObdValueLengthError = 0x003A, // value to write is to long or to short
|
|||
|
// kEplObdIllegalFloat = 0x003B, // illegal float variable
|
|||
|
// kEplObdWrongOdBuilderKey = 0x003F, // OD was generated with demo version of tool ODBuilder
|
|||
|
|
|||
|
// area for NMT module 0x0040 - 0x004F
|
|||
|
kEplNmtUnknownCommand = 0x0040, // unknown NMT command
|
|||
|
kEplNmtInvalidFramePointer = 0x0041, // pointer to the frame is not valid
|
|||
|
kEplNmtInvalidEvent = 0x0042, // invalid event send to NMT-modul
|
|||
|
kEplNmtInvalidState = 0x0043, // unknown state in NMT-State-Maschine
|
|||
|
kEplNmtInvalidParam = 0x0044, // invalid parameters specified
|
|||
|
|
|||
|
// area for SDO/UDP module 0x0050 - 0x005F
|
|||
|
kEplSdoUdpMissCb = 0x0050, // missing callback-function pointer during inti of
|
|||
|
// module
|
|||
|
kEplSdoUdpNoSocket = 0x0051, // error during init of socket
|
|||
|
kEplSdoUdpSocketError = 0x0052, // error during usage of socket
|
|||
|
kEplSdoUdpThreadError = 0x0053, // error during start of listen thread
|
|||
|
kEplSdoUdpNoFreeHandle = 0x0054, // no free connection handle for Udp
|
|||
|
kEplSdoUdpSendError = 0x0055, // Error during send of frame
|
|||
|
kEplSdoUdpInvalidHdl = 0x0056, // the connection handle is invalid
|
|||
|
|
|||
|
// area for SDO Sequence layer module 0x0060 - 0x006F
|
|||
|
kEplSdoSeqMissCb = 0x0060, // no callback-function assign
|
|||
|
kEplSdoSeqNoFreeHandle = 0x0061, // no free handle for connection
|
|||
|
kEplSdoSeqInvalidHdl = 0x0062, // invalid handle in SDO sequence layer
|
|||
|
kEplSdoSeqUnsupportedProt = 0x0063, // unsupported Protocol selected
|
|||
|
kEplSdoSeqNoFreeHistory = 0x0064, // no free entry in history
|
|||
|
kEplSdoSeqFrameSizeError = 0x0065, // the size of the frames is not correct
|
|||
|
kEplSdoSeqRequestAckNeeded = 0x0066, // indeicates that the history buffer is full
|
|||
|
// and a ack request is needed
|
|||
|
kEplSdoSeqInvalidFrame = 0x0067, // frame not valid
|
|||
|
kEplSdoSeqConnectionBusy = 0x0068, // connection is busy -> retry later
|
|||
|
kEplSdoSeqInvalidEvent = 0x0069, // invalid event received
|
|||
|
|
|||
|
// area for SDO Command Layer Module 0x0070 - 0x007F
|
|||
|
kEplSdoComUnsupportedProt = 0x0070, // unsupported Protocol selected
|
|||
|
kEplSdoComNoFreeHandle = 0x0071, // no free handle for connection
|
|||
|
kEplSdoComInvalidServiceType= 0x0072, // invalid SDO service type specified
|
|||
|
kEplSdoComInvalidHandle = 0x0073, // handle invalid
|
|||
|
kEplSdoComInvalidSendType = 0x0074, // the stated to of frame to send is
|
|||
|
// not possible
|
|||
|
kEplSdoComNotResponsible = 0x0075, // internal error: command layer handle is
|
|||
|
// not responsible for this event from sequence layer
|
|||
|
kEplSdoComHandleExists = 0x0076, // handle to same node already exists
|
|||
|
kEplSdoComHandleBusy = 0x0077, // transfer via this handle is already running
|
|||
|
kEplSdoComInvalidParam = 0x0078, // invalid parameters passed to function
|
|||
|
|
|||
|
// area for EPL Event-Modul 0x0080 - 0x008F
|
|||
|
kEplEventUnknownSink = 0x0080, // unknown sink for event
|
|||
|
kEplEventPostError = 0x0081, // error during post of event
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// area for EPL Timer Modul 0x0090 - 0x009F
|
|||
|
kEplTimerInvalidHandle = 0x0090, // invalid handle for timer
|
|||
|
kEplTimerNoTimerCreated = 0x0091, // no timer was created caused by
|
|||
|
// an error
|
|||
|
|
|||
|
// area for EPL SDO/Asnd Module 0x00A0 - 0x0AF
|
|||
|
kEplSdoAsndInvalidNodeId = 0x00A0, //0 node id is invalid
|
|||
|
kEplSdoAsndNoFreeHandle = 0x00A1, // no free handle for connection
|
|||
|
kEplSdoAsndInvalidHandle = 0x00A2, // handle for connection is invalid
|
|||
|
|
|||
|
|
|||
|
// area for PDO module 0x00B0 - 0x00BF
|
|||
|
kEplPdoNotExist = 0x00B0, // selected PDO does not exist
|
|||
|
kEplPdoLengthExceeded = 0x00B1, // length of PDO mapping exceedes 64 bis
|
|||
|
kEplPdoGranularityMismatch = 0x00B2, // configured PDO granularity is not equal to supported granularity
|
|||
|
kEplPdoInitError = 0x00B3, // error during initialisation of PDO module
|
|||
|
kEplPdoErrorPdoEncode = 0x00B4, // error during encoding a PDO
|
|||
|
kEplPdoErrorPdoDecode = 0x00B5, // error during decoding a PDO
|
|||
|
kEplPdoErrorSend = 0x00B6, // error during sending a PDO
|
|||
|
kEplPdoErrorSyncWin = 0x00B7, // the SYNC window runs out during sending SYNC-PDOs
|
|||
|
kEplPdoErrorMapp = 0x00B8, // invalid PDO mapping
|
|||
|
kEplPdoVarNotFound = 0x00B9, // variable was not found in function PdoSignalVar()
|
|||
|
kEplPdoErrorEmcyPdoLen = 0x00BA, // the length of a received PDO is unequal to the expected value
|
|||
|
kEplPdoWriteConstObject = 0x00BB, // constant object can not be written
|
|||
|
// (only TxType, Inhibit-, Event Time for CANopen Kit)
|
|||
|
|
|||
|
// area for LSS slave module
|
|||
|
/* kEplLsssResetNode = 0x0080, // NMT command "reset node" has to be processed after LSS configuration
|
|||
|
// new of NodeId
|
|||
|
kEplLsssInvalidNodeId = 0x0081, // no valid NodeId is configured -> wait until it is configured with
|
|||
|
// LSS service before calling CcmConnectToNet()
|
|||
|
*/
|
|||
|
// area for emergency consumer module 0x0090 - 0x009F
|
|||
|
/* kEplEmccNoFreeProducerEntry = 0x0090, // no free entry to add a Emergency Producer
|
|||
|
kEplEmccNodeIdNotExist = 0x0091, // selected NodeId was never added
|
|||
|
kEplEmccNodeIdInvalid = 0x0092, // selected NodeId is outside of range (0x01 until 0x7F)
|
|||
|
kEplEmccNodeIdExist = 0x0093, // selected NodeId already exist
|
|||
|
*/
|
|||
|
// area for dynamic OD 0x00A0 - 0x00AF
|
|||
|
/* kEplDynNoMemory = 0x00A0, // no memory available
|
|||
|
kEplDynInvalidConfig = 0x00A1, // invalid configuration in segment container
|
|||
|
*/
|
|||
|
// area for hertbeat consumer module 0x00B0 - 0x00BF
|
|||
|
/* kEplHbcEntryNotExist = 0x00B0, // Heartbeat Producer node not configured
|
|||
|
kEplHbcEntryAlreadyExist = 0x00B1, // NodeId was already defined in heartbeat consumer table (object 0x1016)
|
|||
|
*/
|
|||
|
// Configuration manager module 0x00C0 - 0x00CF
|
|||
|
kEplCfgMaConfigError = 0x00C0, // error in configuration manager
|
|||
|
kEplCfgMaSdocTimeOutError = 0x00C1, // error in configuration manager, Sdo timeout
|
|||
|
kEplCfgMaInvalidDcf = 0x00C2, // configration file not valid
|
|||
|
kEplCfgMaUnsupportedDcf = 0x00C3, // unsupported Dcf format
|
|||
|
kEplCfgMaConfigWithErrors = 0x00C4, // configuration finished with errors
|
|||
|
kEplCfgMaNoFreeConfig = 0x00C5, // no free configuration entry
|
|||
|
kEplCfgMaNoConfigData = 0x00C6, // no configuration data present
|
|||
|
kEplCfgMaUnsuppDatatypeDcf = 0x00C7, // unsupported datatype found in dcf
|
|||
|
// -> this entry was not configured
|
|||
|
|
|||
|
|
|||
|
// area for LSS master module 0x00D0 - 0x00DF
|
|||
|
/* kEplLssmIllegalMode = 0x00D0, // illegal LSS mode (operation / configuration)
|
|||
|
kEplLssmIllegalState = 0x00D1, // function was called in illegal state of LSS master
|
|||
|
kEplLssmBusy = 0x00D2, // LSS process is busy with an previous service
|
|||
|
kEplLssmIllegalCmd = 0x00D3, // illegal command code was set for function LssmInquireIdentity()
|
|||
|
kEplLssmTimeout = 0x00D4, // LSS slave did not answer a LSS service
|
|||
|
kEplLssmErrorInConfirm = 0x00D5, // LSS slave replied an error code for a LSS service
|
|||
|
*/
|
|||
|
// area for CCM modules 0x00E0 - 0xEF
|
|||
|
/* kEplCcmStoreUnvalidState = 0x00E0, // memory device not available due device state
|
|||
|
kEplCcmStoreHwError = 0x00E1, // hw error due device access
|
|||
|
*/
|
|||
|
// area for SRDO module 0x0100 - 0x011F
|
|||
|
/* kEplSrdoNotExist = 0x0100, // selected SRDO does not exist
|
|||
|
kEplSrdoGranularityMismatch = 0x0101, // configured SRDO granularity is not equal to supported granularity
|
|||
|
kEplSrdoCfgTimingError = 0x0102, // configuration is not ok (Timing)
|
|||
|
kEplSrdoCfgIdError = 0x0103, // configuration is not ok (CobIds)
|
|||
|
kEplSrdoCfgCrcError = 0x0104, // configuration is not ok (CRC)
|
|||
|
kEplSrdoNmtError = 0x0105, // an action was tried in a wrong NMT state
|
|||
|
kEplSrdoInvalidCfg = 0x0106, // an action was tried with an invald SRDO configuration
|
|||
|
kEplSrdoInvalid = 0x0107, // an action was tried with an invald SRDO
|
|||
|
kEplSrdoRxTxConflict = 0x0108, // an transmission was tried with an receive SRDO (or the other way)
|
|||
|
kEplSrdoIllegalCanId = 0x0109, // the CanId is invalid
|
|||
|
kEplSrdoCanIdAlreadyInUse = 0x010A, // the CanId is already in use
|
|||
|
kEplSrdoNotInOrder = 0x010B, // the two messages of a SRDO are not in order
|
|||
|
kEplSrdoSctTimeout = 0x010C, // timeout of SCT
|
|||
|
kEplSrdoSrvtTimeout = 0x010D, // timeout of SRVT
|
|||
|
kEplSrdoCanIdNotValid = 0x010E, // one of received CAN-IDs are not equal to configured one
|
|||
|
kEplSrdoDlcNotValid = 0x010F, // one of received CAN-DLC are not equal to configured one
|
|||
|
kEplSrdoErrorMapp = 0x0110, // wrong values in mapping found
|
|||
|
kEplSrdoDataError = 0x0111, // data of CAN messages are not invers
|
|||
|
kEplSrdoLengthExceeded = 0x0112, // length of SRDO mapping exceedes 64 bit per CAN-message
|
|||
|
kEplSrdoNotHandledInApp = 0x0113, // the SRDO error was not handled in AppSrdoError()
|
|||
|
kEplSrdoOverrun = 0x0114 // a RxSRDO was received but the pevious one was not else processed
|
|||
|
*/
|
|||
|
|
|||
|
kEplApiTaskDeferred = 0x0140, // EPL performs task in background and informs the application (or vice-versa), when it is finished
|
|||
|
kEplApiInvalidParam = 0x0142, // passed invalid parameters to a function (e.g. invalid node id)
|
|||
|
|
|||
|
// area untill 0x07FF is reserved
|
|||
|
// area for user application from 0x0800 to 0x7FFF
|
|||
|
|
|||
|
} tEplKernel;
|
|||
|
|
|||
|
|
|||
|
#endif
|
|||
|
//EOF
|
|||
|
|
|||
|
// Die letzte Zeile mu<6D> unbedingt eine leere Zeile sein, weil manche Compiler
|
|||
|
// damit ein Problem haben, wenn das nicht so ist (z.B. GNU oder Borland C++ Builder).
|
|||
|
|