FreeEMS  0.2.0-SNAPSHOT-285-g028e24c
errorDefines.h
Go to the documentation of this file.
1 /* FreeEMS - the open source engine management system
2  *
3  * Copyright 2008-2012 Fred Cooke
4  *
5  * This file is part of the FreeEMS project.
6  *
7  * FreeEMS software is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * FreeEMS software is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with any FreeEMS software. If not, see http://www.gnu.org/licenses/
19  *
20  * We ask that if you make any changes to this file you email them upstream to
21  * us at admin(at)diyefi(dot)org or, even better, fork the code on github.com!
22  *
23  * Thank you for choosing FreeEMS to run your engine!
24  */
25 
26 
27 /** @file
28  *
29  * @ingroup allHeaders
30  * @ingroup globalHeaders
31  *
32  * @brief Error ID hash defines
33  *
34  * This file contains all error codes for propagation up and out to a PC.
35  * When adding new codes, ensure that they are unique and also that you
36  * group them appropriately in ranges for easy visual identification.
37  */
38 
39 
40 /* Header file multiple inclusion protection courtesy eclipse Header Template */
41 /* and http://gcc.gnu.org/onlinedocs/gcc-3.1.1/cpp/ C pre processor manual */
42 #ifndef FILE_ERRORDEFINES_H_SEEN
43 #define FILE_ERRORDEFINES_H_SEEN
44 
45 
46 /** @todo TODO Introduce some structure to the numbering such that they can be interpreted somewhat without a chart */
47 
48 // A OK Nothing is wrong No error error.
49 #define NO_PROBLEMO 0x0666
50 
51 /* Unconfigured options */
52 #define IAT_NOT_CONFIGURED_CODE 0x1000
53 #define CHT_NOT_CONFIGURED_CODE 0x1001
54 #define BRV_NOT_CONFIGURED_CODE 0x1002
55 #define LOAD_NOT_CONFIGURED_CODE 0x1003
56 
57 
58 /* Badly configured options */
59 #define VE_TABLE_MAIN_LOAD_LENGTH_TOO_LONG 0x2000
60 #define VE_TABLE_MAIN_RPM_LENGTH_TOO_LONG 0x2001
61 #define VE_TABLE_MAIN_MAIN_LENGTH_TOO_LONG 0x2002
62 #define BRV_MAX_TOO_LARGE 0x2003
63 
64 
65 /* Flash burning error codes */
66 #define sizeNotMultipleOfSectorSize 0x3000
67 #define sizeOfBlockToBurnIsZero 0x3001
68 #define smallBlockCrossesSectorBoundary 0x3002
69 #define addressNotSectorAligned 0x3003
70 #define addressNotWordAligned 0x3004
71 #define addressNotFlashRegion 0x3005
72 #define flashEraseFailed 0x3006
73 #define flashAccessError 0x3007
74 #define flashProtectionError 0x3008
75 
76 
77 // memory check error
78 #define MEMORY_WRITE_ERROR 0x3009
79 
80 /* Communications error codes */
81 #define unimplementedFunction 0x4000
82 #define packetChecksumMismatch 0x4001
83 #define packetTooShortForSpecifiedFields 0x4002
84 #define doesNotMakeSenseToRetrievePartially 0x4003
85 #define payloadLengthTypeMismatch 0x4004
86 #define payloadLengthHeaderMismatch 0x4005
87 #define invalidPayloadID 0x4006
88 #define unrecognisedPayloadID 0x4007
89 #define invalidMemoryActionForID 0x4008
90 #define invalidIDForMainTableAction 0x4009
91 #define invalidIDForTwoDTableAction 0x400A
92 #define noSuchAsyncDatalogType 0x400B
93 #define datalogLengthExceedsMax 0x400C
94 #define locationIDNotFound 0x400D
95 #define requestedRAMPageInvalid 0x400E
96 #define requestedFlashPageInvalid 0x400F
97 #define requestedLengthTooLarge 0x4010
98 #define requestedAddressDisallowed 0x4011
99 #define invalidSizeOffsetCombination 0x4012
100 #define uncheckedTableManipulationNotAllowed 0x4013
101 #define payloadNotEqualToSpecifiedValue 0x4014
102 #define noSuchLocationIDListType 0x4015
103 #define payloadShorterThanRequiredForTest 0x4016
104 #define noSuchUnitTestID 0x4017
105 #define attemptToWriteToReadOnlyBlock 0x4018
106 
107 #define invalidAxisOrder 1 /* prevent parsing */
108 #define invalidAxisIndex 2 /* prevent parsing */
109 
110 #define errorBaseMainTableRPM 0x6000
111 #define invalidMainTableRPMOrder 0x6001
112 #define invalidMainTableRPMIndex 0x6002
113 #define invalidMainTableRPMLength 0x6003
114 #define errorBaseMainTableLoad 0x6004
115 #define invalidMainTableLoadOrder 0x6005
116 #define invalidMainTableLoadIndex 0x6006
117 #define invalidMainTableLoadLength 0x6007
118 #define invalidMainTableMainLength 0x6008
119 
120 #define errorBaseTwoDTableAxis 0x6010
121 #define invalidTwoDTableAxisOrder 0x6011
122 #define invalidTwoDTableIndex 0x6012
123 
124 #define thisIsNotTheBenchTestDecoder 0x7777
125 #define tooShortOfAPulseWidthToTest 0x7778
126 #define unimplementedTestMode 0x7779
127 #define invalidEventsPerCycle 0x777A
128 #define invalidNumberOfCycles 0x777B
129 #define tooShortOfAnEventPeriod 0x777C
130 #define noChannelsConfiguredToTest 0x777D
131 #define benchTestAlreadyRunning 0x777E
132 #define packetSizeWrongForTestMode 0x777F
133 #define bumpingByZeroMakesNoSense 0x7780
134 #define benchTestNotRunningToStop 0x7781
135 #define benchTestNotRunningToBump 0x7782
136 #define tooManyEventsPerCycleMissingTth 0x7783
137 
138 
139 #else
140  /* let us know if we are being untidy with headers */
141  #warning "Header file ERRORDEFINES_H seen before, sort it out!"
142 /* end of the wrapper ifdef from the very top */
143 #endif