aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/epl/EplErrDef.h
blob: 2aee12cfd28cbd3a8009bb7fa11f3e2a62782566 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
/****************************************************************************

  (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ß unbedingt eine leere Zeile sein, weil manche Compiler
// damit ein Problem haben, wenn das nicht so ist (z.B. GNU oder Borland C++ Builder).