Refactor the Makefile into pieces. This commit inspired by AncientGeek, my hatred...
[freeems-vanilla.git] / src / main / inc / errorDefines.h
bloba26ad06459709ae8965f1d2a31394cbe9c79e839
1 /* FreeEMS - the open source engine management system
3 * Copyright 2008-2012 Fred Cooke
5 * This file is part of the FreeEMS project.
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.
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.
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/
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!
23 * Thank you for choosing FreeEMS to run your engine!
27 /** @file
29 * @ingroup allHeaders
30 * @ingroup globalHeaders
32 * @brief Error ID hash defines
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.
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
46 /** @todo TODO Introduce some structure to the numbering such that they can be interpreted somewhat without a chart */
48 // A OK Nothing is wrong No error error.
49 #define NO_PROBLEMO 0x0666
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
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
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
77 // memory check error
78 #define MEMORY_WRITE_ERROR 0x3009
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
107 #define invalidAxisOrder 1 /* prevent parsing */
108 #define invalidAxisIndex 2 /* prevent parsing */
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
120 #define errorBaseTwoDTableAxis 0x6010
121 #define invalidTwoDTableAxisOrder 0x6011
122 #define invalidTwoDTableIndex 0x6012
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
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