• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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