aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/epl/EplErrDef.h
blob: 526169270d9987adbd05cf682d497b5a2985499d (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
295
296
297
298
299
300
301
302
/****************************************************************************

  (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).