00001
00002 #ifndef __MCOMM_PROCESS_CONFIGURATION_H
00003 #define __MCOMM_PROCESS_CONFIGURATION_H
00004
00005 #if defined(MCOMM_ENABLED)
00006
00007 #if !defined(MCOMM_TYPE)
00008 #error The MCOMM_TYPE value has not been defined in mComm_config.h. Please use this value to specify the type of communication to implement.
00009 #else
00010 #if MCOMM_TYPE == MCOMM_UART_ONE_WAY
00011 #define MCOMM_ONE_WAY_ENABLED
00012 #elif MCOMM_TYPE == MCOMM_UART_TWO_WAY
00013 #define MCOMM_TWO_WAY_ENABLED
00014 #elif MCOMM_TYPE == MCOMM_I2C_TWO_WAY
00015 #define MCOMM_TWO_WAY_ENABLED
00016 #elif MCOMM_TYPE == MCOMM_SPI_TWO_WAY
00017 #define MCOMM_TWO_WAY_ENABLED
00018 #endif
00019 #endif
00020
00021 #if (MCOMM_TYPE == MCOMM_UART_ONE_WAY) || (MCOMM_TYPE == MCOMM_UART_TWO_WAY)
00022 #define MCOMM_UART_IMPLEMENTED
00023 #endif
00024 #if (MCOMM_TYPE == MCOMM_I2C_TWO_WAY)
00025 #define MCOMM_I2C_IMPLEMENTED
00026 #endif
00027 #if (MCOMM_TYPE == MCOMM_SPI_TWO_WAY)
00028 #define MCOMM_SPI_IMPLEMENTED
00029 #endif
00030
00031 #if (MCOMM_TYPE == MCOMM_UART_ONE_WAY)
00032 #if !defined(MCOMM_UART_1WAY_MODULE)
00033 #warning The MCOMM_UART_1WAY_MODULE value has not been defined in mComm_config.h. Defaulting to a software implementation.
00034 #define MCOMM_UART_1WAY_MODULE MCOMM_UART_SOFTWARE_IMPLEMENTATION
00035 #endif
00036 #if !defined(MCOMM_UART_1WAY_OUTPUT)
00037 #warning The MCOMM_UART_1WAY_OUTPUT value has not been defined in mComm_config.h. Defaulting to decimal output.
00038 #define MCOMM_UART_1WAY_OUTPUT MCOMM_UART_1WAY_DECIMAL
00039 #endif
00040 #if !defined(MCOMM_UART_1WAY_DELIMITER)
00041 #warning The MCOMM_UART_1WAY_DELIMITER value has not been defined in mComm_config.h. Defaulting to ';'.
00042 #define MCOMM_UART_1WAY_DELIMITER ';'
00043 #endif
00044
00045 #if (MCOMM_UART_1WAY_MODULE == MCOMM_UART_SOFTWARE_IMPLEMENTATION)
00046 #if !defined(MCOMM_UART_SOFT_TXPORT)
00047 #error The MCOMM_UART_SOFT_TXPORT value has not been defined in mComm_config.h. Please assign this to the port which will be used for the TX output pin. Ex: PORTA
00048 #endif
00049 #if !defined(MCOMM_UART_SOFT_TXTRIS)
00050 #error The MCOMM_UART_SOFT_TXTRIS value has not been defined in mComm_config.h. Please assign this to the tris which will be used for the TX output pin. Ex: TRISA
00051 #endif
00052 #if !defined(MCOMM_UART_SOFT_TXPIN)
00053 #error The MCOMM_UART_SOFT_TXPIN value has not been defined in mComm_config.h. Please assign this to the pin which will be used for the TX output pin. Ex: 5
00054 #endif
00055 #endif
00056 #endif
00057
00058 #if defined(MCOMM_UART_IMPLEMENTED)
00059
00060 #if !defined(PIC_UART_AVAILABLE)
00061 #if (MCOMM_TYPE != MCOMM_UART_ONE_WAY)
00062 #error Your chosen PIC microcontroller does not contain a UART module. Edit the MCOMM_TYPE value in mComm_config.h to continue or enable the software UART implementation.
00063 #endif
00064 #if (MCOMM_TYPE == MCOMM_UART_ONE_WAY) && (MCOMM_UART_1WAY_MODULE != MCOMM_UART_SOFTWARE_IMPLEMENTATION)
00065 #error Your chosen PIC microcontroller does not contain a UART module. Edit the MCOMM_TYPE value in mComm_config.h to continue or enable the software UART implementation.
00066 #endif
00067 #else
00068 #define MCOMM_UART_HARDWARE_USED
00069 #endif
00070
00071 #if !defined(MCOMM_UART_BAUDRATE)
00072 #warning The MCOMM_UART_BAUDRATE value in mComm_config.h has not been defined. Defaulting to 38400bps.
00073 #define MCOMM_UART_BAUDRATE 38400
00074 #endif
00075
00076 #if !defined(_XTAL_FREQ)
00077 #error mComm requires _XTAL_FREQ be defined to correctly initialize the UART module. Please #define it in the configuration file to the frequency of the oscillator in Hz.
00078 #endif
00079
00080 #if !defined(PIC_UART_BAUD_BITS)
00081 #define PIC_UART_BAUD_BITS 8
00082 #endif
00083
00084 #if PIC_UART_BAUD_BITS == 16
00085 #define MCOMM_UART_SPBRGH_AVAILABLE
00086 #endif
00087
00088 #if _XTAL_FREQ == 32000000
00089 #if MCOMM_UART_BAUDRATE == 1200
00090 #define MCOMM_UART_SPBRG_VALUE 3332
00091 #define MCOMM_UART_BRG16_VALUE 1
00092 #define MCOMM_UART_BRGH_VALUE 0
00093 #elif MCOMM_UART_BAUDRATE == 2400
00094 #define MCOMM_UART_SPBRG_VALUE 207
00095 #define MCOMM_UART_BRG16_VALUE 0
00096 #define MCOMM_UART_BRGH_VALUE 0
00097 #elif MCOMM_UART_BAUDRATE == 9600
00098 #define MCOMM_UART_SPBRG_VALUE 51
00099 #define MCOMM_UART_BRG16_VALUE 0
00100 #define MCOMM_UART_BRGH_VALUE 0
00101 #define MCOMM_UART_FWBRG_VALUE 208
00102 #elif MCOMM_UART_BAUDRATE == 19200
00103 #define MCOMM_UART_SPBRG_VALUE 25
00104 #define MCOMM_UART_BRG16_VALUE 0
00105 #define MCOMM_UART_BRGH_VALUE 0
00106 #define MCOMM_UART_FWBRG_VALUE 104
00107 #elif MCOMM_UART_BAUDRATE == 38400
00108 #define MCOMM_UART_SPBRG_VALUE 12
00109 #define MCOMM_UART_BRG16_VALUE 0
00110 #define MCOMM_UART_BRGH_VALUE 0
00111 #define MCOMM_UART_FWBRG_VALUE 52
00112 #elif MCOMM_UART_BAUDRATE == 57600
00113 #define MCOMM_UART_SPBRG_VALUE 34
00114 #define MCOMM_UART_BRG16_VALUE 0
00115 #define MCOMM_UART_BRGH_VALUE 1
00116 #define MCOMM_UART_FWBRG_VALUE 35
00117 #elif MCOMM_UART_BAUDRATE == 115200
00118 #define MCOMM_UART_SPBRG_VALUE 16
00119 #define MCOMM_UART_BRG16_VALUE 0
00120 #define MCOMM_UART_BRGH_VALUE 1
00121 #else
00122 #define MCOMM_UART_BADBAUDRATE
00123 #endif
00124 #elif _XTAL_FREQ == 20000000
00125 #if MCOMM_UART_BAUDRATE == 1200
00126 #define MCOMM_UART_SPBRG_VALUE 255
00127 #define MCOMM_UART_BRG16_VALUE 0
00128 #define MCOMM_UART_BRGH_VALUE 0
00129 #elif MCOMM_UART_BAUDRATE == 2400
00130 #define MCOMM_UART_SPBRG_VALUE 129
00131 #define MCOMM_UART_BRG16_VALUE 0
00132 #define MCOMM_UART_BRGH_VALUE 0
00133 #elif MCOMM_UART_BAUDRATE == 9600
00134 #define MCOMM_UART_SPBRG_VALUE 32
00135 #define MCOMM_UART_BRG16_VALUE 0
00136 #define MCOMM_UART_BRGH_VALUE 0
00137 #elif MCOMM_UART_BAUDRATE == 19200
00138 #define MCOMM_UART_SPBRG_VALUE 64
00139 #define MCOMM_UART_BRG16_VALUE 0
00140 #define MCOMM_UART_BRGH_VALUE 1
00141 #elif MCOMM_UART_BAUDRATE == 38400
00142 #define MCOMM_UART_SPBRG_VALUE 31
00143 #define MCOMM_UART_BRG16_VALUE 0
00144 #define MCOMM_UART_BRGH_VALUE 1
00145 #elif MCOMM_UART_BAUDRATE == 57600
00146 #define MCOMM_UART_SPBRG_VALUE 21
00147 #define MCOMM_UART_BRG16_VALUE 0
00148 #define MCOMM_UART_BRGH_VALUE 1
00149 #elif MCOMM_UART_BAUDRATE == 115200
00150 #define MCOMM_UART_SPBRG_VALUE 10
00151 #define MCOMM_UART_BRG16_VALUE 0
00152 #define MCOMM_UART_BRGH_VALUE 1
00153 #else
00154 #define MCOMM_UART_BADBAUDRATE
00155 #endif
00156 #elif _XTAL_FREQ == 18432000
00157 #if MCOMM_UART_BAUDRATE == 1200
00158 #define MCOMM_UART_SPBRG_VALUE 239
00159 #define MCOMM_UART_BRG16_VALUE 0
00160 #define MCOMM_UART_BRGH_VALUE 0
00161 #elif MCOMM_UART_BAUDRATE == 2400
00162 #define MCOMM_UART_SPBRG_VALUE 119
00163 #define MCOMM_UART_BRG16_VALUE 0
00164 #define MCOMM_UART_BRGH_VALUE 0
00165 #elif MCOMM_UART_BAUDRATE == 9600
00166 #define MCOMM_UART_SPBRG_VALUE 29
00167 #define MCOMM_UART_BRG16_VALUE 0
00168 #define MCOMM_UART_BRGH_VALUE 0
00169 #elif MCOMM_UART_BAUDRATE == 19200
00170 #define MCOMM_UART_SPBRG_VALUE 14
00171 #define MCOMM_UART_BRG16_VALUE 0
00172 #define MCOMM_UART_BRGH_VALUE 0
00173 #elif MCOMM_UART_BAUDRATE == 38400
00174 #define MCOMM_UART_SPBRG_VALUE 29
00175 #define MCOMM_UART_BRG16_VALUE 0
00176 #define MCOMM_UART_BRGH_VALUE 1
00177 #elif MCOMM_UART_BAUDRATE == 57600
00178 #define MCOMM_UART_SPBRG_VALUE 7
00179 #define MCOMM_UART_BRG16_VALUE 0
00180 #define MCOMM_UART_BRGH_VALUE 0
00181 #elif MCOMM_UART_BAUDRATE == 115200
00182 #define MCOMM_UART_SPBRG_VALUE 9
00183 #define MCOMM_UART_BRG16_VALUE 0
00184 #define MCOMM_UART_BRGH_VALUE 1
00185 #else
00186 #define MCOMM_UART_BADBAUDRATE
00187 #endif
00188 #elif _XTAL_FREQ == 16000000
00189 #if MCOMM_UART_BAUDRATE == 1200
00190 #define MCOMM_UART_SPBRG_VALUE 207
00191 #define MCOMM_UART_BRG16_VALUE 0
00192 #define MCOMM_UART_BRGH_VALUE 0
00193 #elif MCOMM_UART_BAUDRATE == 2400
00194 #define MCOMM_UART_SPBRG_VALUE 103
00195 #define MCOMM_UART_BRG16_VALUE 0
00196 #define MCOMM_UART_BRGH_VALUE 0
00197 #elif MCOMM_UART_BAUDRATE == 9600
00198 #define MCOMM_UART_SPBRG_VALUE 25
00199 #define MCOMM_UART_BRG16_VALUE 0
00200 #define MCOMM_UART_BRGH_VALUE 0
00201 #define MCOMM_UART_FWBRG_VALUE 104
00202 #elif MCOMM_UART_BAUDRATE == 19200
00203 #define MCOMM_UART_SPBRG_VALUE 12
00204 #define MCOMM_UART_BRG16_VALUE 0
00205 #define MCOMM_UART_BRGH_VALUE 0
00206 #define MCOMM_UART_FWBRG_VALUE 52
00207 #elif MCOMM_UART_BAUDRATE == 38400
00208 #define MCOMM_UART_SPBRG_VALUE 25
00209 #define MCOMM_UART_BRG16_VALUE 0
00210 #define MCOMM_UART_BRGH_VALUE 1
00211 #define MCOMM_UART_FWBRG_VALUE 26
00212 #elif MCOMM_UART_BAUDRATE == 57600
00213 #define MCOMM_UART_SPBRG_VALUE 16
00214 #define MCOMM_UART_BRG16_VALUE 0
00215 #define MCOMM_UART_BRGH_VALUE 1
00216 #elif MCOMM_UART_BAUDRATE == 115200
00217 #define MCOMM_UART_SPBRG_VALUE 34
00218 #define MCOMM_UART_BRG16_VALUE 1
00219 #define MCOMM_UART_BRGH_VALUE 1
00220 #else
00221 #define MCOMM_UART_BADBAUDRATE
00222 #endif
00223 #elif _XTAL_FREQ == 11059200
00224 #if MCOMM_UART_BAUDRATE == 1200
00225 #define MCOMM_UART_SPBRG_VALUE 143
00226 #define MCOMM_UART_BRG16_VALUE 0
00227 #define MCOMM_UART_BRGH_VALUE 0
00228 #elif MCOMM_UART_BAUDRATE == 2400
00229 #define MCOMM_UART_SPBRG_VALUE 71
00230 #define MCOMM_UART_BRG16_VALUE 0
00231 #define MCOMM_UART_BRGH_VALUE 0
00232 #elif MCOMM_UART_BAUDRATE == 9600
00233 #define MCOMM_UART_SPBRG_VALUE 17
00234 #define MCOMM_UART_BRG16_VALUE 0
00235 #define MCOMM_UART_BRGH_VALUE 0
00236 #elif MCOMM_UART_BAUDRATE == 19200
00237 #define MCOMM_UART_SPBRG_VALUE 8
00238 #define MCOMM_UART_BRG16_VALUE 0
00239 #define MCOMM_UART_BRGH_VALUE 0
00240 #elif MCOMM_UART_BAUDRATE == 38400
00241 #define MCOMM_UART_SPBRG_VALUE 17
00242 #define MCOMM_UART_BRG16_VALUE 0
00243 #define MCOMM_UART_BRGH_VALUE 1
00244 #elif MCOMM_UART_BAUDRATE == 57600
00245 #define MCOMM_UART_SPBRG_VALUE 2
00246 #define MCOMM_UART_BRG16_VALUE 0
00247 #define MCOMM_UART_BRGH_VALUE 0
00248 #elif MCOMM_UART_BAUDRATE == 115200
00249 #define MCOMM_UART_SPBRG_VALUE 5
00250 #define MCOMM_UART_BRG16_VALUE 0
00251 #define MCOMM_UART_BRGH_VALUE 1
00252 #else
00253 #define MCOMM_UART_BADBAUDRATE
00254 #endif
00255 #elif _XTAL_FREQ == 8000000
00256 #if MCOMM_UART_BAUDRATE == 1200
00257 #define MCOMM_UART_SPBRG_VALUE 103
00258 #define MCOMM_UART_BRG16_VALUE 0
00259 #define MCOMM_UART_BRGH_VALUE 0
00260 #elif MCOMM_UART_BAUDRATE == 2400
00261 #define MCOMM_UART_SPBRG_VALUE 51
00262 #define MCOMM_UART_BRG16_VALUE 0
00263 #define MCOMM_UART_BRGH_VALUE 0
00264 #elif MCOMM_UART_BAUDRATE == 9600
00265 #define MCOMM_UART_SPBRG_VALUE 12
00266 #define MCOMM_UART_BRG16_VALUE 0
00267 #define MCOMM_UART_BRGH_VALUE 0
00268 #define MCOMM_UART_FWBRG_VALUE 52
00269 #elif MCOMM_UART_BAUDRATE == 19200
00270 #define MCOMM_UART_SPBRG_VALUE 25
00271 #define MCOMM_UART_BRG16_VALUE 0
00272 #define MCOMM_UART_BRGH_VALUE 1
00273 #define MCOMM_UART_FWBRG_VALUE 26
00274 #elif MCOMM_UART_BAUDRATE == 38400
00275 #define MCOMM_UART_SPBRG_VALUE 12
00276 #define MCOMM_UART_BRG16_VALUE 0
00277 #define MCOMM_UART_BRGH_VALUE 1
00278 #define MCOMM_UART_FWBRG_VALUE 13
00279 #elif MCOMM_UART_BAUDRATE == 57600
00280 #define MCOMM_UART_SPBRG_VALUE 8
00281 #define MCOMM_UART_BRG16_VALUE 0
00282 #define MCOMM_UART_BRGH_VALUE 1
00283 #elif MCOMM_UART_BAUDRATE == 115200
00284 #define MCOMM_UART_SPBRG_VALUE 16
00285 #define MCOMM_UART_BRG16_VALUE 1
00286 #define MCOMM_UART_BRGH_VALUE 1
00287 #else
00288 #define MCOMM_UART_BADBAUDRATE
00289 #endif
00290 #elif _XTAL_FREQ == 4000000
00291 #if MCOMM_UART_BAUDRATE == 1200
00292 #define MCOMM_UART_SPBRG_VALUE 51
00293 #define MCOMM_UART_BRG16_VALUE 0
00294 #define MCOMM_UART_BRGH_VALUE 0
00295 #elif MCOMM_UART_BAUDRATE == 2400
00296 #define MCOMM_UART_SPBRG_VALUE 25
00297 #define MCOMM_UART_BRG16_VALUE 0
00298 #define MCOMM_UART_BRGH_VALUE 0
00299 #elif MCOMM_UART_BAUDRATE == 9600
00300 #define MCOMM_UART_SPBRG_VALUE 25
00301 #define MCOMM_UART_BRG16_VALUE 0
00302 #define MCOMM_UART_BRGH_VALUE 1
00303 #define MCOMM_UART_FWBRG_VALUE 26
00304 #elif MCOMM_UART_BAUDRATE == 19200
00305 #define MCOMM_UART_SPBRG_VALUE 12
00306 #define MCOMM_UART_BRG16_VALUE 0
00307 #define MCOMM_UART_BRGH_VALUE 1
00308 #define MCOMM_UART_FWBRG_VALUE 13
00309 #elif MCOMM_UART_BAUDRATE == 38400
00310 #define MCOMM_UART_UNREACHABLE
00311 #elif MCOMM_UART_BAUDRATE == 57600
00312 #define MCOMM_UART_SPBRG_VALUE 16
00313 #define MCOMM_UART_BRG16_VALUE 1
00314 #define MCOMM_UART_BRGH_VALUE 1
00315 #elif MCOMM_UART_BAUDRATE == 115200
00316 #define MCOMM_UART_SPBRG_VALUE 8
00317 #define MCOMM_UART_BRG16_VALUE 1
00318 #define MCOMM_UART_BRGH_VALUE 1
00319 #else
00320 #define MCOMM_UART_BADBAUDRATE
00321 #endif
00322 #elif _XTAL_FREQ == 3686400
00323 #if MCOMM_UART_BAUDRATE == 1200
00324 #define MCOMM_UART_SPBRG_VALUE 47
00325 #define MCOMM_UART_BRG16_VALUE 0
00326 #define MCOMM_UART_BRGH_VALUE 0
00327 #elif MCOMM_UART_BAUDRATE == 2400
00328 #define MCOMM_UART_SPBRG_VALUE 23
00329 #define MCOMM_UART_BRG16_VALUE 0
00330 #define MCOMM_UART_BRGH_VALUE 0
00331 #elif MCOMM_UART_BAUDRATE == 9600
00332 #define MCOMM_UART_SPBRG_VALUE 5
00333 #define MCOMM_UART_BRG16_VALUE 0
00334 #define MCOMM_UART_BRGH_VALUE 0
00335 #elif MCOMM_UART_BAUDRATE == 19200
00336 #define MCOMM_UART_SPBRG_VALUE 2
00337 #define MCOMM_UART_BRG16_VALUE 0
00338 #define MCOMM_UART_BRGH_VALUE 0
00339 #elif MCOMM_UART_BAUDRATE == 38400
00340 #define MCOMM_UART_SPBRG_VALUE 6
00341 #define MCOMM_UART_BRG16_VALUE 0
00342 #define MCOMM_UART_BRGH_VALUE 1
00343 #elif MCOMM_UART_BAUDRATE == 57600
00344 #define MCOMM_UART_SPBRG_VALUE 0
00345 #define MCOMM_UART_BRG16_VALUE 0
00346 #define MCOMM_UART_BRGH_VALUE 0
00347 #elif MCOMM_UART_BAUDRATE == 115200
00348 #define MCOMM_UART_SPBRG_VALUE 1
00349 #define MCOMM_UART_BRG16_VALUE 0
00350 #define MCOMM_UART_BRGH_VALUE 1
00351 #else
00352 #define MCOMM_UART_BADBAUDRATE
00353 #endif
00354 #elif _XTAL_FREQ == 2000000
00355 #if MCOMM_UART_BAUDRATE == 1200
00356 #define MCOMM_UART_SPBRG_VALUE 25
00357 #define MCOMM_UART_BRG16_VALUE 0
00358 #define MCOMM_UART_BRGH_VALUE 0
00359 #elif MCOMM_UART_BAUDRATE == 2400
00360 #define MCOMM_UART_SPBRG_VALUE 12
00361 #define MCOMM_UART_BRG16_VALUE 0
00362 #define MCOMM_UART_BRGH_VALUE 0
00363 #elif MCOMM_UART_BAUDRATE == 9600
00364 #define MCOMM_UART_SPBRG_VALUE 12
00365 #define MCOMM_UART_BRG16_VALUE 0
00366 #define MCOMM_UART_BRGH_VALUE 1
00367 #define MCOMM_UART_FWBRG_VALUE 13
00368 #elif MCOMM_UART_BAUDRATE == 19200
00369 #define MCOMM_UART_SPBRG_VALUE 25
00370 #define MCOMM_UART_BRG16_VALUE 1
00371 #define MCOMM_UART_BRGH_VALUE 1
00372 #elif MCOMM_UART_BAUDRATE == 38400
00373 #define MCOMM_UART_SPBRG_VALUE 12
00374 #define MCOMM_UART_BRG16_VALUE 1
00375 #define MCOMM_UART_BRGH_VALUE 1
00376 #elif MCOMM_UART_BAUDRATE == 57600
00377 #define MCOMM_UART_SPBRG_VALUE 8
00378 #define MCOMM_UART_BRG16_VALUE 1
00379 #define MCOMM_UART_BRGH_VALUE 1
00380 #elif MCOMM_UART_BAUDRATE == 115200
00381 #define MCOMM_UART_UNREACHABLE
00382 #else
00383 #define MCOMM_UART_BADBAUDRATE
00384 #endif
00385 #elif _XTAL_FREQ == 1000000
00386 #if MCOMM_UART_BAUDRATE == 1200
00387 #define MCOMM_UART_SPBRG_VALUE 12
00388 #define MCOMM_UART_BRG16_VALUE 0
00389 #define MCOMM_UART_BRGH_VALUE 0
00390 #elif MCOMM_UART_BAUDRATE == 2400
00391 #define MCOMM_UART_SPBRG_VALUE 51
00392 #define MCOMM_UART_BRG16_VALUE 0
00393 #define MCOMM_UART_BRGH_VALUE 1
00394 #elif MCOMM_UART_BAUDRATE == 9600
00395 #define MCOMM_UART_SPBRG_VALUE 25
00396 #define MCOMM_UART_BRG16_VALUE 1
00397 #define MCOMM_UART_BRGH_VALUE 1
00398 #elif MCOMM_UART_BAUDRATE == 19200
00399 #define MCOMM_UART_SPBRG_VALUE 12
00400 #define MCOMM_UART_BRG16_VALUE 1
00401 #define MCOMM_UART_BRGH_VALUE 1
00402 #elif MCOMM_UART_BAUDRATE == 38400
00403 #define MCOMM_UART_UNREACHABLE
00404 #elif MCOMM_UART_BAUDRATE == 57600
00405 #define MCOMM_UART_UNREACHABLE
00406 #elif MCOMM_UART_BAUDRATE == 115200
00407 #define MCOMM_UART_UNREACHABLE
00408 #else
00409 #define MCOMM_UART_BADBAUDRATE
00410 #endif
00411 #else
00412 #error Current _XTAL_FREQ value is not compatible with the predefined values in the mComm code.
00413 #endif
00414
00415 #if defined(MCOMM_UART_BADBAUDRATE)
00416 #error Requested baud rate is not compatible with the predefined values in the mComm code.
00417 #endif
00418
00419 #if defined(MCOMM_ONE_WAY_ENABLED) && (MCOMM_UART_1WAY_MODULE == MCOMM_UART_SOFTWARE_IMPLEMENTATION)
00420
00421 #if !defined(MCOMM_UART_FWBRG_VALUE)
00422 #error Requested baud rate is not a defined option for the software-implemented UART. Try 9600, 19200, or 38400 for the baud rate in mComm_config.h
00423 #endif
00424
00425 #else
00426
00427 #if defined(MCOMM_UART_BRG16_VALUE) && (MCOMM_UART_BRG16_VALUE == 1)
00428 #if PIC_UART_BAUD_BITS != 16
00429 #error Requested baud rate is unreachable without a 16-bit baud rate generator which your PIC microcontroller does not have. Please redefine MCOMM_UART_BAUDRATE in mComm_config.h
00430 #endif
00431 #endif
00432
00433 #if defined(MCOMM_UART_UNREACHABLE)
00434 #error Requested baud rate is unreachable given the current _XTAL_FREQ and module limitations.
00435 #endif
00436
00437 #if MCOMM_UART_SPBRG_VALUE > 255
00438 #define MCOMM_UART_SPBRGL_VALUE (uint8_t)(MCOMM_UART_SPBRG_VALUE & 0xFF)
00439 #define MCOMM_UART_SPBRGH_VALUE (uint8_t)(MCOMM_UART_SPBRG_VALUE >> 8)
00440 #else
00441 #define MCOMM_UART_SPBRGL_VALUE (uint8_t)(MCOMM_UART_SPBRG_VALUE)
00442 #define MCOMM_UART_SPBRGH_VALUE (uint8_t)(0x00)
00443 #endif
00444
00445 #endif
00446
00447 #endif
00448
00449 #if defined(MCOMM_TWO_WAY_ENABLED)
00450
00451 #if defined(MCOMM_ENABLE_CUSTOM_OPCODE)
00452 #if !defined(MCOMM_CUSTOM_PROCESS)
00453 #error MCOMM_ENABLE_CUSTOM_OPCODE is defined, but MCOMM_CUSTOM_PROCESS has not been. Please define MCOMM_CUSTOM_PROCESS with the name of your custom mComm process function.
00454 #endif
00455 #if !defined(MCOMM_CUSTOM_READ_ITERATOR) && !defined(MCOMM_CUSTOM_WRITE_ITERATOR)
00456 #error MCOMM_ENABLE_CUSTOM_OPCODE is defined, but neither MCOMM_CUSTOM_READ_ITERATOR nor MCOMM_CUSTOM_WRITE_ITERATOR has been. Please define at least one of those values with the name of your custom read/write iterator function.
00457 #endif
00458
00459 #define MCOMM_CUSTOM_PROCESS_ADR &MCOMM_CUSTOM_PROCESS
00460 #define MCOMM_CUSTOM_READ_ITER_ADR 0x0000
00461 #define MCOMM_CUSTOM_WRITE_ITER_ADR 0x0000
00462
00463 #if defined(MCOMM_CUSTOM_READ_ITERATOR)
00464 #define MCOMM_CUSTOM_READ_ENABLED
00465 #undef MCOMM_CUSTOM_READ_ITER_ADR
00466 #define MCOMM_CUSTOM_READ_ITER_ADR &MCOMM_CUSTOM_READ_ITERATOR
00467 #endif
00468 #if defined(MCOMM_CUSTOM_WRITE_ITERATOR)
00469 #define MCOMM_CUSTOM_WRITE_ENABLED
00470 #undef MCOMM_CUSTOM_WRITE_ITER_ADR
00471 #define MCOMM_CUSTOM_WRITE_ITER_ADR &MCOMM_CUSTOM_WRITE_ITERATOR
00472 #endif
00473
00474 #endif
00475
00476
00477 #define MCOMM_STREAM_WRITE_ITER_ADR &mComm_ErrorIterator
00478
00479 #define MCOMM_OPCODES_ALL { \
00480 { &mComm_processRAM, &mComm_ramWriteIterator }, \
00481 { &mComm_processRAM, &mComm_ramReadIterator }, \
00482 { &mComm_processNVM, &mComm_nvmWriteIterator }, \
00483 { &mComm_processNVM, &mComm_nvmReadIterator }, \
00484 { &mComm_processStream, MCOMM_STREAM_WRITE_ITER_ADR }, \
00485 { &mComm_processStream, &mComm_StreamReadIterator }, \
00486 { MCOMM_CUSTOM_PROCESS_ADR, MCOMM_CUSTOM_WRITE_ITER_ADR }, \
00487 { MCOMM_CUSTOM_PROCESS_ADR, MCOMM_CUSTOM_READ_ITER_ADR } \
00488 }
00489
00490 #define MCOMM_OPCODES_NONVM { \
00491 { &mComm_processRAM, &mComm_ramWriteIterator }, \
00492 { &mComm_processRAM, &mComm_ramReadIterator }, \
00493 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00494 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00495 { &mComm_processStream, MCOMM_STREAM_WRITE_ITER_ADR }, \
00496 { &mComm_processStream, &mComm_StreamReadIterator }, \
00497 { MCOMM_CUSTOM_PROCESS_ADR, MCOMM_CUSTOM_WRITE_ITER_ADR }, \
00498 { MCOMM_CUSTOM_PROCESS_ADR, MCOMM_CUSTOM_READ_ITER_ADR } \
00499 }
00500
00501 #define MCOMM_OPCODES_NONVMSTREAM { \
00502 { &mComm_processRAM, &mComm_ramWriteIterator }, \
00503 { &mComm_processRAM, &mComm_ramReadIterator }, \
00504 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00505 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00506 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00507 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00508 { MCOMM_CUSTOM_PROCESS_ADR, MCOMM_CUSTOM_WRITE_ITER_ADR }, \
00509 { MCOMM_CUSTOM_PROCESS_ADR, MCOMM_CUSTOM_READ_ITER_ADR } \
00510 }
00511
00512 #define MCOMM_OPCODES_NOSTREAM { \
00513 { &mComm_processRAM, &mComm_ramWriteIterator }, \
00514 { &mComm_processRAM, &mComm_ramReadIterator }, \
00515 { &mComm_processNVM, &mComm_nvmWriteIterator }, \
00516 { &mComm_processNVM, &mComm_nvmReadIterator }, \
00517 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00518 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00519 { MCOMM_CUSTOM_PROCESS_ADR, MCOMM_CUSTOM_WRITE_ITER_ADR }, \
00520 { MCOMM_CUSTOM_PROCESS_ADR, MCOMM_CUSTOM_READ_ITER_ADR } \
00521 }
00522
00523 #define MCOMM_OPCODES_NOCUST { \
00524 { &mComm_processRAM, &mComm_ramWriteIterator }, \
00525 { &mComm_processRAM, &mComm_ramReadIterator }, \
00526 { &mComm_processNVM, &mComm_nvmWriteIterator }, \
00527 { &mComm_processNVM, &mComm_nvmReadIterator }, \
00528 { &mComm_processStream, MCOMM_STREAM_WRITE_ITER_ADR }, \
00529 { &mComm_processStream, &mComm_StreamReadIterator }, \
00530 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00531 { &mComm_ErrorProcess, &mComm_ErrorIterator } \
00532 }
00533
00534 #define MCOMM_OPCODES_NONVMCUST { \
00535 { &mComm_processRAM, &mComm_ramWriteIterator }, \
00536 { &mComm_processRAM, &mComm_ramReadIterator }, \
00537 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00538 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00539 { &mComm_processStream, MCOMM_STREAM_WRITE_ITER_ADR }, \
00540 { &mComm_processStream, &mComm_StreamReadIterator }, \
00541 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00542 { &mComm_ErrorProcess, &mComm_ErrorIterator } \
00543 }
00544
00545 #define MCOMM_OPCODES_NONVMSTRCUST { \
00546 { &mComm_processRAM, &mComm_ramWriteIterator }, \
00547 { &mComm_processRAM, &mComm_ramReadIterator }, \
00548 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00549 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00550 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00551 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00552 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00553 { &mComm_ErrorProcess, &mComm_ErrorIterator } \
00554 }
00555
00556 #define MCOMM_OPCODES_NOSTRCUST { \
00557 { &mComm_processRAM, &mComm_ramWriteIterator }, \
00558 { &mComm_processRAM, &mComm_ramReadIterator }, \
00559 { &mComm_processNVM, &mComm_nvmWriteIterator }, \
00560 { &mComm_processNVM, &mComm_nvmReadIterator }, \
00561 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00562 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00563 { &mComm_ErrorProcess, &mComm_ErrorIterator }, \
00564 { &mComm_ErrorProcess, &mComm_ErrorIterator } \
00565 }
00566
00567
00568
00569
00570 #define MCOMM_NUMBER_OPCODES 8
00571
00572
00573
00574
00575
00576 #if defined(MCOMM_ENABLE_CUSTOM_OPCODE)
00577 #if defined(MCOMM_ENABLE_NVM_ACCESS)
00578 #if defined(MCOMM_ENABLE_STREAM)
00579 #define MCOMM_OPCODE_VALUES MCOMM_OPCODES_ALL
00580 #else
00581 #define MCOMM_OPCODE_VALUES MCOMM_OPCODES_NOSTREAM
00582 #endif
00583 #else
00584 #if defined(MCOMM_ENABLE_STREAM)
00585 #define MCOMM_OPCODE_VALUES MCOMM_OPCODES_NONVM
00586 #else
00587 #define MCOMM_OPCODE_VALUES MCOMM_OPCODES_NONVMSTREAM
00588 #endif
00589 #endif
00590 #else
00591 #if defined(MCOMM_ENABLE_NVM_ACCESS)
00592 #if defined(MCOMM_ENABLE_STREAM)
00593 #define MCOMM_OPCODE_VALUES MCOMM_OPCODES_NOCUST
00594 #else
00595 #define MCOMM_OPCODE_VALUES MCOMM_OPCODES_NOSTRCUST
00596 #endif
00597 #else
00598 #if defined(MCOMM_ENABLE_STREAM)
00599 #define MCOMM_OPCODE_VALUES MCOMM_OPCODES_NONVMCUST
00600 #else
00601 #define MCOMM_OPCODE_VALUES MCOMM_OPCODES_NONVMSTRCUST
00602 #endif
00603 #endif
00604 #endif
00605
00606
00607
00608 #define MCOMM_OP_RAM_WRITE 0x00
00609 #define MCOMM_OP_RAM_READ 0x01
00610 #define MCOMM_OP_NVM_WRITE 0x02
00611 #define MCOMM_OP_NVM_READ 0x03
00612 #define MCOMM_OP_STREAM_WRITE 0x04
00613 #define MCOMM_OP_STREAM_READ 0x05
00614 #define MCOMM_OP_CUSTOM_WRITE 0x06
00615 #define MCOMM_OP_CUSTOM_READ 0x07
00616
00617 #define MCOMM_OP_ACK 0xAA // Value to send when 'ACK'ing to the Master
00618 #define MCOMM_OP_NACK 0xA5
00619
00620
00621 #define MCOMM_CONFIG_NVM_ACCESS 0
00622 #define MCOMM_CONFIG_STREAM_ACCESS 0
00623 #define MCOMM_CONFIG_STREAM_RAM 0
00624 #define MCOMM_CONFIG_CUSTOM_ACCESS 0
00625
00626 #if defined(MCOMM_ENABLE_NVM_ACCESS)
00627 #undef MCOMM_CONFIG_NVM_ACCESS
00628 #define MCOMM_CONFIG_NVM_ACCESS 0x01
00629
00630 #if !defined(MTOUCH_EEPROM_ENABLED) && !defined(MCOMM_NVM_MTOUCH_EE_DISABLED)
00631 #warning MCOMM NVM access is enabled, but the mTouch Framework is not using the EEPROM to store values. Either enable mTouch's EEPROM implementation by defining MTOUCH_EEPROM_ENABLED in mTouch_config.h or define MCOMM_NVM_MTOUCH_EE_DISABLED in mComm_config.h to remove this warning.
00632 #endif
00633 #endif
00634 #if defined(MCOMM_ENABLE_STREAM)
00635 #undef MCOMM_CONFIG_STREAM_ACCESS
00636 #define MCOMM_CONFIG_STREAM_ACCESS 0x02
00637 #if defined(MCOMM_STREAM_STORED_IN_RAM)
00638 #undef MCOMM_CONFIG_STREAM_RAM
00639 #define MCOMM_CONFIG_STREAM_RAM 0x04
00640 #endif
00641 #endif
00642 #if defined(MCOMM_ENABLE_CUSTOM_OPCODE)
00643 #undef MCOMM_CONFIG_CUSTOM_ACCESS
00644 #define MCOMM_CONFIG_CUSTOM_ACCESS 0x08
00645 #endif
00646
00647 #define MCOMM_CONFIGURATION_BYTE (MCOMM_CONFIG_NVM_ACCESS | MCOMM_CONFIG_STREAM_ACCESS | MCOMM_CONFIG_STREAM_RAM | MCOMM_CONFIG_CUSTOM_ACCESS)
00648
00649
00650 #define MCOMM_TOGGLE_ADR 0x0000
00651 #if defined(MTOUCH_TOGGLE_ENABLED)
00652 #undef MCOMM_TOGGLE_ADR
00653 #define MCOMM_TOGGLE_ADR &mTouch_toggle
00654 #endif
00655
00656 #define MCOMM_SLIDER_ADR 0x0000
00657 #if defined(MTOUCH_SLIDERS_ENABLED)
00658 #undef MCOMM_SLIDER_ADR
00659 #define MCOMM_SLIDER_ADR &mTouch_slider
00660 #endif
00661
00662 #if _EEPROMSIZE == 0
00663 #define MTOUCH_EEPROM_POW2_SIZE 0
00664 #elif _EEPROMSIZE == 128
00665 #define MTOUCH_EEPROM_POW2_SIZE 7
00666 #elif _EEPROMSIZE == 256
00667 #define MTOUCH_EEPROM_POW2_SIZE 8
00668 #elif _EEPROMSIZE == 512
00669 #define MTOUCH_EEPROM_POW2_SIZE 9
00670 #elif _EEPROMSIZE == 1024
00671 #define MTOUCH_EEPROM_POW2_SIZE 10
00672 #elif _EEPROMSIZE == 2048
00673 #define MTOUCH_EEPROM_POW2_SIZE 11
00674 #elif _EEPROMSIZE == 4096
00675 #define MTOUCH_EEPROM_POW2_SIZE 12
00676 #elif _EEPROMSIZE == 8192
00677 #define MTOUCH_EEPROM_POW2_SIZE 13
00678 #elif _EEPROMSIZE == 16384
00679 #define MTOUCH_EEPROM_POW2_SIZE 14
00680 #elif _EEPROMSIZE == 32768
00681 #define MTOUCH_EEPROM_POW2_SIZE 15
00682 #elif _EEPROMSIZE == 65536
00683 #define MTOUCH_EEPROM_POW2_SIZE 16
00684 #endif
00685
00686 #define MCOMM_STREAM_VALUE_LAST { 0x0000, 0 }
00687
00688 #define MCOMM_STREAM_COMMA0
00689 #define MCOMM_STREAM_COMMA1
00690 #define MCOMM_STREAM_COMMA2
00691 #define MCOMM_STREAM_COMMA3
00692 #define MCOMM_STREAM_COMMA4
00693 #define MCOMM_STREAM_COMMA5
00694 #define MCOMM_STREAM_COMMA6
00695 #define MCOMM_STREAM_COMMA7
00696 #define MCOMM_STREAM_COMMA8
00697 #define MCOMM_STREAM_COMMA9
00698 #define MCOMM_STREAM_COMMA10
00699 #define MCOMM_STREAM_COMMA11
00700 #define MCOMM_STREAM_COMMA12
00701 #define MCOMM_STREAM_COMMA13
00702 #define MCOMM_STREAM_COMMA14
00703 #define MCOMM_STREAM_COMMA15
00704 #define MCOMM_STREAM_COMMA16
00705 #define MCOMM_STREAM_COMMA17
00706 #define MCOMM_STREAM_COMMA18
00707 #define MCOMM_STREAM_COMMA19
00708
00709 #if MCOMM_STREAM_SIZE > 0
00710 #if !defined(MCOMM_STREAM_VALUE0)
00711 #define MCOMM_STREAM_VALUE0 MCOMM_STREAM_VALUE_LAST
00712 #endif
00713 #endif
00714 #if MCOMM_STREAM_SIZE > 1
00715 #if !defined(MCOMM_STREAM_VALUE1)
00716 #define MCOMM_STREAM_VALUE1 MCOMM_STREAM_VALUE_LAST
00717 #endif
00718 #undef MCOMM_STREAM_COMMA0
00719 #define MCOMM_STREAM_COMMA0 ,
00720 #endif
00721 #if MCOMM_STREAM_SIZE > 2
00722 #if !defined(MCOMM_STREAM_VALUE2)
00723 #define MCOMM_STREAM_VALUE2 MCOMM_STREAM_VALUE_LAST
00724 #endif
00725 #undef MCOMM_STREAM_COMMA1
00726 #define MCOMM_STREAM_COMMA1 ,
00727 #endif
00728 #if MCOMM_STREAM_SIZE > 3
00729 #if !defined(MCOMM_STREAM_VALUE3)
00730 #define MCOMM_STREAM_VALUE3 MCOMM_STREAM_VALUE_LAST
00731 #endif
00732 #undef MCOMM_STREAM_COMMA2
00733 #define MCOMM_STREAM_COMMA2 ,
00734 #endif
00735 #if MCOMM_STREAM_SIZE > 4
00736 #if !defined(MCOMM_STREAM_VALUE4)
00737 #define MCOMM_STREAM_VALUE4 MCOMM_STREAM_VALUE_LAST
00738 #endif
00739 #undef MCOMM_STREAM_COMMA3
00740 #define MCOMM_STREAM_COMMA3 ,
00741 #endif
00742 #if MCOMM_STREAM_SIZE > 5
00743 #if !defined(MCOMM_STREAM_VALUE5)
00744 #define MCOMM_STREAM_VALUE5 MCOMM_STREAM_VALUE_LAST
00745 #endif
00746 #undef MCOMM_STREAM_COMMA4
00747 #define MCOMM_STREAM_COMMA4 ,
00748 #endif
00749 #if MCOMM_STREAM_SIZE > 6
00750 #if !defined(MCOMM_STREAM_VALUE6)
00751 #define MCOMM_STREAM_VALUE6 MCOMM_STREAM_VALUE_LAST
00752 #endif
00753 #undef MCOMM_STREAM_COMMA5
00754 #define MCOMM_STREAM_COMMA5 ,
00755 #endif
00756 #if MCOMM_STREAM_SIZE > 7
00757 #if !defined(MCOMM_STREAM_VALUE7)
00758 #define MCOMM_STREAM_VALUE7 MCOMM_STREAM_VALUE_LAST
00759 #endif
00760 #undef MCOMM_STREAM_COMMA6
00761 #define MCOMM_STREAM_COMMA6 ,
00762 #endif
00763 #if MCOMM_STREAM_SIZE > 8
00764 #if !defined(MCOMM_STREAM_VALUE8)
00765 #define MCOMM_STREAM_VALUE8 MCOMM_STREAM_VALUE_LAST
00766 #endif
00767 #undef MCOMM_STREAM_COMMA7
00768 #define MCOMM_STREAM_COMMA7 ,
00769 #endif
00770 #if MCOMM_STREAM_SIZE > 9
00771 #if !defined(MCOMM_STREAM_VALUE9)
00772 #define MCOMM_STREAM_VALUE9 MCOMM_STREAM_VALUE_LAST
00773 #endif
00774 #undef MCOMM_STREAM_COMMA8
00775 #define MCOMM_STREAM_COMMA8 ,
00776 #endif
00777 #if MCOMM_STREAM_SIZE > 10
00778 #if !defined(MCOMM_STREAM_VALUE10)
00779 #define MCOMM_STREAM_VALUE10 MCOMM_STREAM_VALUE_LAST
00780 #endif
00781 #undef MCOMM_STREAM_COMMA9
00782 #define MCOMM_STREAM_COMMA9 ,
00783 #endif
00784 #if MCOMM_STREAM_SIZE > 11
00785 #if !defined(MCOMM_STREAM_VALUE11)
00786 #define MCOMM_STREAM_VALUE11 MCOMM_STREAM_VALUE_LAST
00787 #endif
00788 #undef MCOMM_STREAM_COMMA10
00789 #define MCOMM_STREAM_COMMA10 ,
00790 #endif
00791 #if MCOMM_STREAM_SIZE > 12
00792 #if !defined(MCOMM_STREAM_VALUE12)
00793 #define MCOMM_STREAM_VALUE12 MCOMM_STREAM_VALUE_LAST
00794 #endif
00795 #undef MCOMM_STREAM_COMMA11
00796 #define MCOMM_STREAM_COMMA11 ,
00797 #endif
00798 #if MCOMM_STREAM_SIZE > 13
00799 #if !defined(MCOMM_STREAM_VALUE13)
00800 #define MCOMM_STREAM_VALUE13 MCOMM_STREAM_VALUE_LAST
00801 #endif
00802 #undef MCOMM_STREAM_COMMA12
00803 #define MCOMM_STREAM_COMMA12 ,
00804 #endif
00805 #if MCOMM_STREAM_SIZE > 14
00806 #if !defined(MCOMM_STREAM_VALUE14)
00807 #define MCOMM_STREAM_VALUE14 MCOMM_STREAM_VALUE_LAST
00808 #endif
00809 #undef MCOMM_STREAM_COMMA13
00810 #define MCOMM_STREAM_COMMA13 ,
00811 #endif
00812 #if MCOMM_STREAM_SIZE > 15
00813 #if !defined(MCOMM_STREAM_VALUE15)
00814 #define MCOMM_STREAM_VALUE15 MCOMM_STREAM_VALUE_LAST
00815 #endif
00816 #undef MCOMM_STREAM_COMMA14
00817 #define MCOMM_STREAM_COMMA14 ,
00818 #endif
00819 #if MCOMM_STREAM_SIZE > 16
00820 #if !defined(MCOMM_STREAM_VALUE16)
00821 #define MCOMM_STREAM_VALUE16 MCOMM_STREAM_VALUE_LAST
00822 #endif
00823 #undef MCOMM_STREAM_COMMA15
00824 #define MCOMM_STREAM_COMMA15 ,
00825 #endif
00826 #if MCOMM_STREAM_SIZE > 17
00827 #if !defined(MCOMM_STREAM_VALUE17)
00828 #define MCOMM_STREAM_VALUE17 MCOMM_STREAM_VALUE_LAST
00829 #endif
00830 #undef MCOMM_STREAM_COMMA16
00831 #define MCOMM_STREAM_COMMA16 ,
00832 #endif
00833 #if MCOMM_STREAM_SIZE > 18
00834 #if !defined(MCOMM_STREAM_VALUE18)
00835 #define MCOMM_STREAM_VALUE18 MCOMM_STREAM_VALUE_LAST
00836 #endif
00837 #undef MCOMM_STREAM_COMMA17
00838 #define MCOMM_STREAM_COMMA17 ,
00839 #endif
00840 #if MCOMM_STREAM_SIZE > 19
00841 #if !defined(MCOMM_STREAM_VALUE19)
00842 #define MCOMM_STREAM_VALUE19 MCOMM_STREAM_VALUE_LAST
00843 #endif
00844 #undef MCOMM_STREAM_COMMA18
00845 #define MCOMM_STREAM_COMMA18 ,
00846 #endif
00847
00848 #if MCOMM_STREAM_SIZE < 20
00849 #if defined(MCOMM_STREAM_VALUE19)
00850 #undef MCOMM_STREAM_VALUE19
00851 #endif
00852 #define MCOMM_STREAM_VALUE19
00853 #endif
00854
00855 #if MCOMM_STREAM_SIZE < 19
00856 #if defined(MCOMM_STREAM_VALUE18)
00857 #undef MCOMM_STREAM_VALUE18
00858 #endif
00859 #define MCOMM_STREAM_VALUE18
00860 #endif
00861
00862 #if MCOMM_STREAM_SIZE < 18
00863 #if defined(MCOMM_STREAM_VALUE17)
00864 #undef MCOMM_STREAM_VALUE17
00865 #endif
00866 #define MCOMM_STREAM_VALUE17
00867 #endif
00868
00869 #if MCOMM_STREAM_SIZE < 17
00870 #if defined(MCOMM_STREAM_VALUE16)
00871 #undef MCOMM_STREAM_VALUE16
00872 #endif
00873 #define MCOMM_STREAM_VALUE16
00874 #endif
00875
00876 #if MCOMM_STREAM_SIZE < 16
00877 #if defined(MCOMM_STREAM_VALUE15)
00878 #undef MCOMM_STREAM_VALUE15
00879 #endif
00880 #define MCOMM_STREAM_VALUE15
00881 #endif
00882
00883 #if MCOMM_STREAM_SIZE < 15
00884 #if defined(MCOMM_STREAM_VALUE14)
00885 #undef MCOMM_STREAM_VALUE14
00886 #endif
00887 #define MCOMM_STREAM_VALUE14
00888 #endif
00889
00890 #if MCOMM_STREAM_SIZE < 14
00891 #if defined(MCOMM_STREAM_VALUE13)
00892 #undef MCOMM_STREAM_VALUE13
00893 #endif
00894 #define MCOMM_STREAM_VALUE13
00895 #endif
00896
00897 #if MCOMM_STREAM_SIZE < 13
00898 #if defined(MCOMM_STREAM_VALUE12)
00899 #undef MCOMM_STREAM_VALUE12
00900 #endif
00901 #define MCOMM_STREAM_VALUE12
00902 #endif
00903
00904 #if MCOMM_STREAM_SIZE < 12
00905 #if defined(MCOMM_STREAM_VALUE11)
00906 #undef MCOMM_STREAM_VALUE11
00907 #endif
00908 #define MCOMM_STREAM_VALUE11
00909 #endif
00910
00911 #if MCOMM_STREAM_SIZE < 11
00912 #if defined(MCOMM_STREAM_VALUE10)
00913 #undef MCOMM_STREAM_VALUE10
00914 #endif
00915 #define MCOMM_STREAM_VALUE10
00916 #endif
00917
00918 #if MCOMM_STREAM_SIZE < 10
00919 #if defined(MCOMM_STREAM_VALUE9)
00920 #undef MCOMM_STREAM_VALUE9
00921 #endif
00922 #define MCOMM_STREAM_VALUE9
00923 #endif
00924
00925 #if MCOMM_STREAM_SIZE < 9
00926 #if defined(MCOMM_STREAM_VALUE8)
00927 #undef MCOMM_STREAM_VALUE8
00928 #endif
00929 #define MCOMM_STREAM_VALUE8
00930 #endif
00931
00932 #if MCOMM_STREAM_SIZE < 8
00933 #if defined(MCOMM_STREAM_VALUE7)
00934 #undef MCOMM_STREAM_VALUE7
00935 #endif
00936 #define MCOMM_STREAM_VALUE7
00937 #endif
00938
00939 #if MCOMM_STREAM_SIZE < 7
00940 #if defined(MCOMM_STREAM_VALUE6)
00941 #undef MCOMM_STREAM_VALUE6
00942 #endif
00943 #define MCOMM_STREAM_VALUE6
00944 #endif
00945
00946 #if MCOMM_STREAM_SIZE < 6
00947 #if defined(MCOMM_STREAM_VALUE5)
00948 #undef MCOMM_STREAM_VALUE5
00949 #endif
00950 #define MCOMM_STREAM_VALUE5
00951 #endif
00952
00953 #if MCOMM_STREAM_SIZE < 5
00954 #if defined(MCOMM_STREAM_VALUE4)
00955 #undef MCOMM_STREAM_VALUE4
00956 #endif
00957 #define MCOMM_STREAM_VALUE4
00958 #endif
00959
00960 #if MCOMM_STREAM_SIZE < 4
00961 #if defined(MCOMM_STREAM_VALUE3)
00962 #undef MCOMM_STREAM_VALUE3
00963 #endif
00964 #define MCOMM_STREAM_VALUE3
00965 #endif
00966
00967 #if MCOMM_STREAM_SIZE < 3
00968 #if defined(MCOMM_STREAM_VALUE2)
00969 #undef MCOMM_STREAM_VALUE2
00970 #endif
00971 #define MCOMM_STREAM_VALUE2
00972 #endif
00973
00974 #if MCOMM_STREAM_SIZE < 2
00975 #if defined(MCOMM_STREAM_VALUE1)
00976 #undef MCOMM_STREAM_VALUE1
00977 #endif
00978 #define MCOMM_STREAM_VALUE1
00979 #endif
00980
00981 #if MCOMM_STREAM_SIZE < 1
00982 #if defined(MCOMM_STREAM_VALUE0)
00983 #undef MCOMM_STREAM_VALUE0
00984 #endif
00985 #define MCOMM_STREAM_VALUE0
00986 #endif
00987
00988
00989 #define MCOMM_STREAM_VALUES { MCOMM_STREAM_VALUE0 MCOMM_STREAM_COMMA0 \
00990 MCOMM_STREAM_VALUE1 MCOMM_STREAM_COMMA1 \
00991 MCOMM_STREAM_VALUE2 MCOMM_STREAM_COMMA2 \
00992 MCOMM_STREAM_VALUE3 MCOMM_STREAM_COMMA3 \
00993 MCOMM_STREAM_VALUE4 MCOMM_STREAM_COMMA4 \
00994 MCOMM_STREAM_VALUE5 MCOMM_STREAM_COMMA5 \
00995 MCOMM_STREAM_VALUE6 MCOMM_STREAM_COMMA6 \
00996 MCOMM_STREAM_VALUE7 MCOMM_STREAM_COMMA7 \
00997 MCOMM_STREAM_VALUE8 MCOMM_STREAM_COMMA8 \
00998 MCOMM_STREAM_VALUE9 MCOMM_STREAM_COMMA9 \
00999 MCOMM_STREAM_VALUE10 MCOMM_STREAM_COMMA10 \
01000 MCOMM_STREAM_VALUE11 MCOMM_STREAM_COMMA11 \
01001 MCOMM_STREAM_VALUE12 MCOMM_STREAM_COMMA12 \
01002 MCOMM_STREAM_VALUE13 MCOMM_STREAM_COMMA13 \
01003 MCOMM_STREAM_VALUE14 MCOMM_STREAM_COMMA14 \
01004 MCOMM_STREAM_VALUE15 MCOMM_STREAM_COMMA15 \
01005 MCOMM_STREAM_VALUE16 MCOMM_STREAM_COMMA16 \
01006 MCOMM_STREAM_VALUE17 MCOMM_STREAM_COMMA17 \
01007 MCOMM_STREAM_VALUE18 MCOMM_STREAM_COMMA18 \
01008 MCOMM_STREAM_VALUE19 MCOMM_STREAM_COMMA19 \
01009 , MCOMM_STREAM_VALUE_LAST \
01010 };
01011
01012
01013 #endif
01014 #endif
01015 #endif