Tezzeret
1
Tezzeret
AppDev
GmCommon
include
GeoAppDefs.hpp
1
#ifndef _GEO_APPDEFS_HPP
2
#define _GEO_APPDEFS_HPP
3
4
#include "geolibversioninfo.hpp"
5
6
/*****************************************************************
7
*****************************************************************
8
* Tezzeret uses #defines of this format:
9
* #define SOMETHING GEO_TRUE
10
* or
11
* #define SOMETHING GEO_FALSE
12
*
13
* rather than just
14
* #define SOMETHING
15
*
16
* and #ifdefs of this format:
17
* #if SOMETHING == GEO_TRUE
18
* and
19
* #if SOMETHING == GEO_FALSE
20
*
21
* rather than just
22
*
23
* #define SOMETHING
24
* and
25
* #ifdef SOMETHING
26
*
27
* It is a rule to continue using this pattern in any
28
* conditional compilation #define that appears in this file.
29
* In #defines outside of this file, other rules may apply.
30
*
31
* These next #defines provide the starting point for that
32
* usage.
33
*****************************************************************
34
******************************************************************/
35
#define GEO_TRUE (1)
36
#define GEO_FALSE (0)
37
#define GEO_NOT_RELEVANT GEO_FALSE
38
39
/*====================================================================*/
40
/*====================================================================*/
41
/* Application pre-sets. */
42
/*====================================================================*/
43
/*====================================================================*/
44
#define GEO_APP_EXAMPLE GEO_FALSE
45
46
#define GEO_APP_MAG_ARROW GEO_FALSE
47
48
#define GEO_APP_PACTRON_DEV_KIT GEO_FALSE
49
50
#define GEO_APP_EH5_MAIN_FIRMWARE GEO_FALSE
51
52
/* G-864 walking mag */
53
#define GEO_APP_G864 GEO_TRUE
54
55
/* MagEx */
56
#define GEO_APP_MAGEX GEO_FALSE
57
58
/* MagEx 1000Hz */
59
#define GEO_APP_KLOKI GEO_FALSE
60
61
/* MagEx base station */
62
#define GEO_APP_TRANQUILITY GEO_FALSE
63
64
/* G-864 base station */
65
#define GEO_APP_SERENITY GEO_FALSE
66
67
/* MagArrow rover */
68
#define GEO_APP_EAGLE GEO_FALSE
69
70
/* Intrepid MagEx rover */
71
#define GEO_APP_INTREPID GEO_FALSE
72
73
/* Aquarius - MagEx rover, 1000Hz */
74
#define GEO_APP_AQUARIUS GEO_FALSE
75
76
/* MagEx, internet-connected */
77
#define GEO_APP_MEADOWLARK GEO_FALSE
78
79
80
#define GEO_APP_G864_MFAM_FILTERED GEO_FALSE
81
#define GEO_1588_GRANDMASTER GEO_FALSE
82
#define GEO_PROVISIONING_APP GEO_FALSE
83
#define GEO_EIVA_PROVISIONING_APP GEO_FALSE
84
#define GEO_BOOTLOADER GEO_FALSE
85
#define GEO_FLASHTEST GEO_FALSE
86
#define GEO_SURVEY_MANAGER GEO_FALSE
87
#define GEO_APP_GODZILLA GEO_FALSE
88
#define GEO_APP_TCP_STREAMER GEO_FALSE
89
#define GEO_APP_PACTRON_DEV_KIT_STREAMER GEO_FALSE
90
#define GEO_APP_DOLPHIN GEO_FALSE
91
/*====================================================================*/
92
/*====================================================================*/
93
/* End of application pre-sets. */
94
/*====================================================================*/
95
/*====================================================================*/
96
97
#define GEO_PROTOCOL 2
98
#define GEO_PROTOCOL_AS_STRING "2"
99
100
#define GEO_USB 2
101
#define GEO_SD 3
102
103
/*********************************************************************/
104
/* A board descriptor = CLASS | SUBCLASS | VERSION
105
* If version == 0, then no specific version is specified.
106
*/
107
/*********************************************************************/
108
#define GEO_SYSTEM_BOARD_CLASS_PACTRON (0x01<<24)
109
#define GEO_SYSTEM_BOARD_CLASS_UNIFIED (0x02<<24)
110
#define GEO_SYSTEM_BOARD_CLASS_1292NCPDT (0x03<<24)
111
#define GEO_SYSTEM_BOARD_CLASS_C6748 (0x04<<24)
112
#define GEO_SYSTEM_BOARD_CLASS_TIVA_LAUNCHPAD (0x08<<24)
113
#define GEO_SYSTEM_BOARD_CLASS_SITARA (0x10<<24)
114
#define GEO_SYSTEM_BOARD_CLASS_TIVA_EIVA (0x20<<24)
115
#define GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_G864 (0x01<<16)
116
#define GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL (0x02<<16)
117
#define GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_MAGARROW (0x03<<16)
118
119
120
121
122
/****************************************************************
123
********************* G-864 *************************************
124
*****************************************************************/
125
#if GEO_APP_G864 == GEO_TRUE
126
127
#define GEO_APP_EMBEDDED_PROGRAM_NAME "G864"
128
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "G864"
129
#define HTTP_DOMAIN_NAME "g864.net"
130
131
/********************************************************
132
* General application info. - name, versioning, etc.
133
*********************************************************/
134
#define GEO_APP_MAJOR_VERSION "3"
135
#define GEO_APP_MINOR_VERSION "1"
136
#define GEO_SCHEMA_VERSION 8
137
138
/********************************************************
139
* Relating to boards and sensor hardware
140
*********************************************************/
141
/*** Primary elements **/
142
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
143
#define BOARD_PACTRON_1 GEO_FALSE
144
#define BOARD_UNIFIED_03 GEO_TRUE
145
146
#define EMULATE_862_SENSOR GEO_FALSE
147
#define GEO_SERIAL_CESIUM_MAG GEO_TRUE
148
149
#define GEO_INDICATORS GEO_TRUE
150
#define GEO_INDICATORS_BLINKERS GEO_TRUE
151
#define GEO_INDICATORS_SIREN GEO_TRUE
152
153
/********************************************************
154
* Relating to file systems and storage
155
*********************************************************/
156
/* A meta-define */
157
/* A meta-define */
158
#define USE_USB_STORAGE GEO_TRUE
159
#define USE_SD_STORAGE GEO_FALSE
160
#define GEO_USES_APP_CONFIG_FILES GEO_TRUE
161
#define GEO_CONFIG_STORAGE "1:"
162
#define GEO_LOG_STORAGE "1:"
163
164
165
166
#if USE_USB_STORAGE == GEO_TRUE
167
#define UNMIRRORED_STORAGE GEO_FALSE
168
#define EMBEDDED_DATA_STORAGE GEO_TRUE
169
#define GEO_SDCARD GEO_FALSE
170
#define GEO_USB_STORAGE GEO_TRUE
171
#define GEO_PRIMARY_STORAGE GEO_USB
172
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
173
#define GEO_LOG_FILES GEO_TRUE
174
#define FILES_PER_DIRECTORY 200
175
#define FILES_IN_DIRECTORIES GEO_TRUE
176
#define SECONDS_PER_DATA_FILE (5)
177
#elif USE_SD_STORAGE == GEO_TRUE
178
//#error SD card is not working on engineering system. Test production systems before enabling this.
179
#define UNMIRRORED_STORAGE GEO_FALSE
180
#define EMBEDDED_DATA_STORAGE GEO_TRUE
181
#define GEO_SDCARD GEO_TRUE
182
#define GEO_USB_STORAGE GEO_TRUE
183
#define GEO_PRIMARY_STORAGE GEO_SD
184
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
185
#define GEO_LOG_FILES GEO_FALSE
186
#define FILES_PER_DIRECTORY 200
187
#define FILES_IN_DIRECTORIES GEO_TRUE
188
#define SECONDS_PER_DATA_FILE (5)
189
#else
190
#define UNMIRRORED_STORAGE GEO_TRUE
191
#define EMBEDDED_DATA_STORAGE GEO_FALSE
192
#define GEO_SDCARD GEO_FALSE
193
#define GEO_USB_STORAGE GEO_TRUE
194
//#define GEO_PRIMARY_STORAGE GEO_USB
195
//#define GEO_CACHE_LAST_FILE_INDEX GEO_FALSE
196
#define GEO_LOG_FILES GEO_TRUE
197
#define SECONDS_PER_DATA_FILE (1)
198
#endif
199
200
#define LTE_TEST GEO_FALSE
201
202
/********************************************************
203
* MQTT, WiFi, and network
204
*********************************************************/
205
#define GEO_MQTT GEO_TRUE
206
#if LTE_TEST == GEO_TRUE
207
#define GEO_MQTT_SYNCH_REQUESTS GEO_TRUE
208
//#define PASSKEY "94618894"
209
//#define SSID_NAME "#Skyroam_v4u"
210
#define GEO_MQTT_CONNECT_TO_BROKER GEO_TRUE
211
#define GEO_WIFI_STATION_MODE GEO_TRUE
212
#else
213
#define GEO_MQTT_SYNCH_REQUESTS GEO_FALSE
214
#define GEO_WIFI_STATION_MODE GEO_FALSE
215
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
216
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
217
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
218
#define GEO_DYNAMIC_WIFI_SSID GEO_TRUE
219
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
220
221
//#define PASSKEY "usa987011"
222
//#define SSID_NAME "GEO-Software-Team"
223
#endif
224
/* Wifi or Ethernet? */
225
#define GEO_NET_3100 GEO_TRUE
226
227
#define NUM_HTTP_DAEMONS 5
228
#define NUM_MQTT_DAEMONS 2
229
230
/********************************************************
231
* GPS and PPS
232
*********************************************************/
233
#define GPS_ENABLED GEO_TRUE
234
#define GEO_PPS_EVENTS GEO_TRUE
235
#define CHOOSE_PPS_DUTY_CYCLE GEO_TRUE
236
237
#if GPS_ENABLED == GEO_TRUE
238
#define GEO_GPS_ADAFRUIT GEO_FALSE
239
#define GEO_GPS_TALLYSMAN_5431 GEO_TRUE
240
#define GEO_GPS_SIERRA_1110 GEO_FALSE
241
#endif
242
243
244
/**************** Other devices **************************/
245
#define GEO_I2C GEO_TRUE
246
247
#define GEO_SENSOR_LIGHT GEO_TRUE
248
#define GEO_STORAGE_LIGHT GEO_TRUE
249
#define GEO_PPS_LIGHT GEO_TRUE
250
#define GEO_GPS_LIGHT GEO_TRUE
251
252
#define GEO_864_PPS_LOCK GEO_TRUE
253
#define GEO_STANDARD_UART_TASK_PRIORITY 8
254
255
256
/********************************************************************************
257
* Setting up sensor data types.
258
* These are used to identify the use of particular sensors in this application,
259
* The max number is used to set up the array "m_apsStorages", where it is
260
* preferable, in order to save space, not to have unused items.
261
* So, in this section, we try to make them contiguous.
262
********************************************************************************/
263
//#define THIS_APP_MAG_DATA_TYPE 1
264
#define THIS_APP_993_DATA_TYPE 0
265
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_993_DATA_TYPE + 1)
266
#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
267
#define THIS_APP_APP_EVENTS (THIS_APP_PPS_EVENTS + 1)
268
/* Used to define "m_apsStorages" */
269
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
270
//#define THIS_APP_MFAM_BLOCK_DATA_TYPE 6#define GEO_STANDARD_UART_TASK_PRIORITY 8
271
272
273
/**************************************************************************/
274
/* Logging modes, indicating what the application should do with data.
275
* The order of these doesn't matter, but the total number of them matters,
276
* and they are used as indexes into "m_apsStorages" matters, so we
277
* want to keep that array small if we can. These are never saved in any
278
* DB, or transmitted over the network.
279
**************************************************************************/
280
#define GM_LOGGING_MODE_MONITOR_DATA (0)
281
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
282
/* IGNORE_ALL is not used in setting up m_apsStorages */
283
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
284
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
285
286
/**************************************************************************
287
* This number refers to the maximum number of storages that are
288
* set up into "m_apsStorages". There may be additional storages for
289
* other reasons, but that's what this one is about.
290
* If this isn't set up correctly then m_apsStorages will blow up.
291
**************************************************************************/
292
#define GEO_MAX_APP_STORAGES (2)
// Maximum numnber of storages
293
294
297
#if BOARD_TIVA_LAUNCHPAD == GEO_TRUE
298
#define GEO_APP_NAME "Geometrics G864-LP"
299
#define GEO_SSID "Tezzeret-LP-728"
300
#endif
301
#if BOARD_PACTRON_1 == GEO_TRUE
302
#define GEO_APP_NAME "Geometrics G864-PB"
303
#define GEO_SSID "Tezzeret-PB"
304
#endif
305
#if BOARD_UNIFIED_03 == GEO_TRUE
306
#define GEO_APP_NAME "Geometrics G864"
307
#define GEO_SSID "Tezzeret"
308
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL|0x03
309
#define MFAM_SYS_MGMT GEO_FALSE
310
#define GEO_4151_BATTERY_MONITOR GEO_TRUE
311
#endif
312
313
314
/*********************************************************************/
315
/* In order to debug the 864, sometimes we want to have text files */
316
/* rather than the binary files expected by the Android client. */
317
/* When debugging in this fashion, using a browser use GEO_TRUE */
318
/* Use GEO_FALSE for using the Android app. */
319
/*********************************************************************/
320
#define GEO_864_DEBUG_TEXT_FILES GEO_FALSE
321
#if GEO_864_DEBUG_TEXT_FILES == GEO_TRUE
322
#define GEO_WRITE_TEXT_FILE_HEADERS GEO_TRUE
323
#else
324
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
325
#endif
326
#define GEO_CM221_MAG_DATA GEO_TRUE
327
// Single survey true only for testing.
328
#define GEO_SINGLE_SURVEY GEO_FALSE
329
#define GEO_FILE_SYNCH_EVENTS GEO_TRUE
330
331
#if EMULATE_862_SENSOR == GEO_TRUE
332
#define EMULATE_862_RATE 10
333
#endif
334
335
#if (GEO_SERIAL_CESIUM_MAG == GEO_TRUE) || (EMULATE_862_SENSOR == GEO_TRUE)
336
#define BLOCKS_PER_ACQUISITION_DATA_FILE 50
337
#endif
338
339
340
341
/********************************************************
342
* Queue and buffer sizes. These all need to be as large
343
* as possible, while fitting into memory with each other.
344
*********************************************************/
345
#if UNMIRRORED_STORAGE == GEO_TRUE
346
#define GEO_RAM_FILE_BUFFER_SIZE 100000
347
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
348
#define COUNT_MFAM_BUFFERS 0
349
#define COUNT_862_MAGS 100
350
#define GM_SIZE_OF_APP_DATA_QUEUE 120
351
#elif EMULATE_862_SENSOR == GEO_TRUE
352
#define COUNT_MFAM_BUFFERS 0
353
#define COUNT_862_MAGS 400
354
#define GM_SIZE_OF_APP_DATA_QUEUE 500
355
#endif
356
#endif
357
358
#if EMBEDDED_DATA_STORAGE == GEO_TRUE
359
360
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
361
#define COUNT_MFAM_BUFFERS 0
362
#define COUNT_862_MAGS 400
363
#define GM_SIZE_OF_APP_DATA_QUEUE 500
364
#elif EMULATE_862_SENSOR == GEO_TRUE
365
#define COUNT_MFAM_BUFFERS 0
366
#define COUNT_862_MAGS 400
367
#define GM_SIZE_OF_APP_DATA_QUEUE 500
368
#endif
369
#endif
370
371
372
373
374
#define GEO_TCP_STREAMING GEO_FALSE
375
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
376
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
377
#define ALLOW_DELETE_SURVEYS GEO_TRUE
378
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
379
380
#define GEO_LOG_PPS_DATA GEO_TRUE
381
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
382
#define GEO_AUTO_START_LOGGING GEO_FALSE
383
#define GEO_HARD_MAG_SUBSAMPLE 500
384
#define GEO_860_HARD_SUBSAMPLE 6
385
386
#define DAEMON_MAXRECORD 3
387
388
/***********************************************************
389
* Relating to host if any
390
**********************************************************/
391
#define HOST_CONNECTED GEO_TRUE
392
#define KNOWS_HOST_TIME GEO_TRUE
393
394
395
#define EMU_1HZ_NOT
396
397
#define FILE_LOGGING_ALWAYS
398
//#define GEO_TEXT_MODE_ONLY
399
400
#define SDSPI_BITRATE 12500000
401
#define acs "ccs"
402
#define accs
403
#define aPART_TM4C1294NCPDT
404
#define aTIVAWARE
405
#define axdc_target_types__ ti/targets/std.h
406
407
/* Enable/Disable some test routines.
408
If not testing that, then FALSE */
409
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
410
#define GEO_TEST_WIFI_TCPIP_THROUGHPUT GEO_FALSE
411
412
/* Priorities */
413
#define HTTP_DAEMON_PRIORITY 4
414
#define MQTT_DAEMON_PRIORITY 4
415
#define MAIN_TASK_STARTUP_PRIORITY
416
#define MAIN_TASK_LOOP_PRIORITY
417
#define WIFI_STARTUP_TASK_PRIORITY 9
418
#define SYS_MGMT_TASK_PRIORITY 1
419
#define GEO_STANDARD_UART_TASK_PRIORITY 8
420
#define WIFI_DAEMON_TASK_PRIORITY 10
421
422
#endif
423
424
/********************************************
425
* Loki
426
**********************************************/
427
428
#if GEO_APP_MAGEX == GEO_TRUE
429
430
#define GEO_APP_EMBEDDED_PROGRAM_NAME "MagEx"
431
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "MagEx"
432
#define HTTP_DOMAIN_NAME "magex.net"
433
434
/********************************************************
435
* General application info. - name, versioning, etc.
436
*********************************************************/
437
#define GEO_APP_MAJOR_VERSION "0"
438
#define GEO_APP_MINOR_VERSION "8"
439
#define GEO_SCHEMA_VERSION 9
440
#define GEO_PROTOCOL 3
441
#define GEO_PROTOCOL_AS_STRING "3"
442
445
/********************************************************
446
* Relating to boards and sensor hardware
447
*********************************************************/
448
/*** Primary elements **/
449
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
450
#define BOARD_PACTRON_1 GEO_FALSE
451
#define BOARD_UNIFIED_03 GEO_TRUE
452
453
#define USE_MAG_ARROW_HARDWARE GEO_FALSE
454
#define USE_LOKI_HARDWARE GEO_TRUE
455
456
/****************************************************
457
* Magnetometer options.
458
****************************************************/
459
/* A meta-define */
460
#define RUN_REAL_MFAM GEO_TRUE
461
462
#if RUN_REAL_MFAM == GEO_TRUE
463
#define MFAM_MODULE GEO_TRUE
464
#define EMULATE_MFAM_SENSOR GEO_FALSE
465
/* FID cycle is usually 1000, but it can be changed
466
* to test unusual situations */
467
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
468
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
469
#define GEO_MFAM_FULL_FILTER GEO_TRUE
470
#else
471
/* In this case we're emulating */
472
#define EMULATE_MFAM_SENSOR GEO_TRUE
473
#define MFAM_MODULE GEO_FALSE
474
/* FID cycle is usually 1000, but it can be changed
475
* to test unusual situations */
476
#define MFAM_EMULATOR_FID_CYCLE 1000
477
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
478
#define GEO_MFAM_FULL_FILTER GEO_TRUE
479
#endif
480
481
/********************************************************
482
* Relating to file systems and storage
483
*********************************************************/
484
#define GEO_USES_APP_CONFIG_FILES GEO_TRUE
485
#define GEO_CONFIG_STORAGE "1:"
486
#define GEO_LOG_STORAGE "1:"
487
488
/* A meta-define */
489
#define USE_USB_STORAGE GEO_FALSE
490
#define USE_SD_STORAGE GEO_TRUE
491
492
#if USE_USB_STORAGE == GEO_TRUE
493
#define UNMIRRORED_STORAGE GEO_FALSE
494
#define EMBEDDED_DATA_STORAGE GEO_TRUE
495
#define GEO_SDCARD GEO_TRUE
496
#define GEO_USB_STORAGE GEO_TRUE
497
#define GEO_PRIMARY_STORAGE GEO_USB
498
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
499
#define GEO_LOG_FILES GEO_TRUE
500
#define FILES_PER_DIRECTORY 200
501
#define FILES_IN_DIRECTORIES GEO_TRUE
502
#define SECONDS_PER_DATA_FILE (5)
503
#define COUNT_862_MAGS 0
504
#define GM_SIZE_OF_APP_DATA_QUEUE 1600
505
#define COUNT_MFAM_BUFFERS 1500
506
#define GEO_RAM_FILE_BUFFER_SIZE 0
507
//#define GEO_HARD_MAG_SUBSAMPLE 0
508
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
509
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
510
#endif
511
512
#elif USE_SD_STORAGE == GEO_TRUE
513
#define UNMIRRORED_STORAGE GEO_FALSE
514
#define EMBEDDED_DATA_STORAGE GEO_TRUE
515
#define GEO_SDCARD GEO_TRUE
516
#define GEO_USB_STORAGE GEO_TRUE
517
#define GEO_PRIMARY_STORAGE GEO_SD
518
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
519
#define GEO_LOG_FILES GEO_TRUE
520
#define FILES_PER_DIRECTORY 200
521
#define FILES_IN_DIRECTORIES GEO_TRUE
522
#define SECONDS_PER_DATA_FILE (5)
523
#define GM_SIZE_OF_APP_DATA_QUEUE 1600
524
#define COUNT_MFAM_BUFFERS 1500
525
#define GEO_RAM_FILE_BUFFER_SIZE 0
526
//#define GEO_HARD_MAG_SUBSAMPLE 0
527
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
528
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
529
#endif
530
531
#else
532
#define UNMIRRORED_STORAGE GEO_TRUE
533
#define EMBEDDED_DATA_STORAGE GEO_FALSE
534
#define GEO_SDCARD GEO_TRUE
535
#define GEO_USB_STORAGE GEO_TRUE
536
//#define GEO_CACHE_LAST_FILE_INDEX GEO_FALSE
537
#define GEO_LOG_FILES GEO_TRUE
538
#define SECONDS_PER_DATA_FILE (1)
539
#define GEO_RAM_FILE_BUFFER_SIZE 60000
540
#define GM_SIZE_OF_APP_DATA_QUEUE 520
541
#define COUNT_MFAM_BUFFERS 500
542
#define BLOCKS_PER_ACQUISITION_DATA_FILE 100
543
#endif
544
545
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
546
#define ALLOW_DELETE_SURVEYS GEO_TRUE
547
548
549
/********************************************************
550
* MQTT, WiFi, and network
551
*********************************************************/
552
#define LTE_TEST GEO_FALSE
553
#define GEO_MQTT GEO_TRUE
554
#if LTE_TEST == GEO_TRUE
555
#define GEO_MQTT_SYNCH_REQUESTS GEO_TRUE
556
#define GEO_MQTT_CONNECT_TO_BROKER GEO_TRUE
557
#define GEO_WIFI_STATION_MODE GEO_TRUE
558
#else
559
#define GEO_MQTT_SYNCH_REQUESTS GEO_FALSE
560
#define GEO_WIFI_STATION_MODE GEO_FALSE
561
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
562
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
563
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
564
#define GEO_DYNAMIC_WIFI_SSID GEO_TRUE
565
#endif
566
567
/* Wifi or Ethernet? */
568
#define GEO_NET_3100 GEO_TRUE
569
#define NUM_HTTP_DAEMONS (5)
570
#define NUM_MQTT_DAEMONS (2)
571
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
572
573
574
/********************************************************
575
* GPS and PPS
576
*********************************************************/
577
#define GPS_ENABLED GEO_TRUE
578
#define GEO_PPS_EVENTS GEO_TRUE
579
#define CHOOSE_PPS_DUTY_CYCLE GEO_TRUE
580
#define GEO_LOG_PPS_DATA GEO_TRUE
581
#define GEO_864_PPS_LOCK GEO_FALSE
582
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
583
584
#if GPS_ENABLED == GEO_TRUE
585
#define GEO_GPS_ADAFRUIT GEO_FALSE
586
#define GEO_GPS_TALLYSMAN_5431 GEO_FALSE
587
#if USE_LOKI_HARDWARE == GEO_TRUE
588
#define GEO_GPS_ZEDF9P GEO_TRUE
589
#define GEO_GPS_ZEDF9P_PPK GEO_FALSE
590
#define GEO_GPS_SIERRA_1110 GEO_FALSE
591
#else
592
#define GEO_GPS_SIERRA_1110 GEO_TRUE
593
#define GEO_GPS_ZEDF9P GEO_FALSE
594
#endif
595
#endif
596
597
598
599
/**************** Other devices **************************/
600
#if USE_LOKI_HARDWARE == GEO_TRUE
601
#define LOKI_PICKLE_SWITCH GEO_TRUE
602
#define LOKI_TWEETER GEO_TRUE
603
#define GEO_SPEAKER_DAC GEO_TRUE
604
#define GEO_SENSOR_LIGHT GEO_TRUE
605
#define GEO_STORAGE_LIGHT GEO_TRUE
606
#define GEO_PPS_LIGHT GEO_FALSE
607
#define GEO_WIFI_LIGHT GEO_TRUE
608
#define GEO_GPS_LIGHT GEO_TRUE
609
#define GEO_POWER_INDICATOR_LIGHT GEO_TRUE
610
#define GEO_INDICATORS GEO_TRUE
611
#define GEO_INDICATORS_BLINKERS GEO_TRUE
612
#define GEO_INDICATORS_SIREN GEO_TRUE
613
#else
614
#define GEO_INDICATORS GEO_FALSE
615
#define GEO_INDICATORS_BLINKERS GEO_FALSE
616
#define GEO_INDICATORS_SIREN GEO_FALSE
617
#define LOKI_PICKLE_SWITCH GEO_FALSE
618
#define LOKI_TWEETER GEO_FALSE
619
#define GEO_SPEAKER_DAC GEO_FALSE
620
#define GEO_SENSOR_LIGHT GEO_FALSE
621
#define GEO_STORAGE_LIGHT GEO_FALSE
622
#define GEO_PPS_LIGHT GEO_FALSE
623
#define GEO_WIFI_LIGHT GEO_FALSE
624
#define GEO_GPS_LIGHT GEO_FALSE
625
#define GEO_POWER_INDICATOR_LIGHT GEO_FALSE
626
#endif
627
628
#define GEO_I2C GEO_TRUE
629
/***********************************************************
630
* Batteries
631
************************************************************/
632
#define BATTERY_50_PERCENT (11.1)
633
#define BATTERY_20_PERCENT (10.5)
634
#define BATTERY_5_PERCENT (10.0)
635
636
/********************************************************************************
637
* Setting up sensor data types.
638
* These are used to identify the use of particular sensors in this application,
639
* The max number is used to set up the array "m_apsStorages", where it is
640
* preferable, in order to save space, not to have unused items.
641
* So, in this section, we try to make them contiguous.
642
********************************************************************************/
643
#define THIS_APP_MAG_DATA_TYPE 0
644
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MAG_DATA_TYPE + 1)
645
#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
646
#define THIS_APP_APP_EVENTS (THIS_APP_PPS_EVENTS + 1)
647
/* Used to define "m_apsStorages" */
648
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
649
//#define THIS_APP_MFAM_BLOCK_DATA_TYPE 6
650
651
/**************************************************************************/
652
/* Logging modes, indicating what the application should do with data.
653
* The order of these doesn't matter, but the total number of them matters,
654
* and they are used as indexes into "m_apsStorages" matters, so we
655
* want to keep that array small if we can. These are never saved in any
656
* DB, or transmitted over the network.
657
**************************************************************************/
658
#define GM_LOGGING_MODE_MONITOR_DATA (0)
659
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
660
/* IGNORE_ALL is not used in setting up m_apsStorages */
661
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
662
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
663
664
/**************************************************************************
665
* This number refers to the maximum number of storages that are
666
* set up into "m_apsStorages". There may be additional storages for
667
* other reasons, but that's what this one is about.
668
* If this isn't set up correctly then m_apsStorages will blow up.
669
**************************************************************************/
670
671
/* Files, monitor, and MQTT */
672
#define GEO_MAX_APP_STORAGES (3)
673
674
675
#if BOARD_UNIFIED_03 == GEO_TRUE
676
#define GEO_APP_NAME "MagEx"
677
#define GEO_SSID "Tezzeret"
678
#if USE_MAG_ARROW_HARDWARE == GEO_TRUE
679
#define GEO_7993_BATTERY_MONITOR GEO_TRUE
680
#define MFAM_SYS_MGMT GEO_TRUE
681
#elif USE_LOKI_HARDWARE == GEO_TRUE
682
#define GEO_7998_BATTERY_MONITOR GEO_TRUE
683
#define GEO_TMP75_TEMP_SENSOR GEO_TRUE
684
#define MFAM_SYS_MGMT GEO_TRUE
685
#endif
686
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL|0x03
687
#endif
688
689
/*********************************************************************/
690
/* Binary header in every file. */
691
/*********************************************************************/
692
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
693
#define GEO_SINGLE_SURVEY GEO_FALSE
694
#define GEO_FILE_SYNCH_EVENTS GEO_TRUE
695
696
/********************************************************
697
* Queue and buffer sizes. These all need to be as large
698
* as possible, while fitting into memory with each other.
699
*********************************************************/
700
#define GEO_LOAD_MFAM_SAMPLE_RATE_FROM_CONFIGS GEO_FALSE
701
#define GEO_HARD_MAG_SUBSAMPLE_MQTT 200
702
#define GEO_DYNAMIC_CFG_RECORDS_PER_FILE GEO_FALSE
703
704
705
/***********************************************************
706
* Relating to host if any
707
**********************************************************/
708
#define HOST_CONNECTED GEO_TRUE
709
#define KNOWS_HOST_TIME GEO_TRUE
710
711
#define GEO_TCP_STREAMING GEO_FALSE
712
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
713
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
714
715
#define GEO_AUTO_START_LOGGING GEO_FALSE
716
#define GEO_HARD_MAG_SUBSAMPLE 500
717
#define GEO_LOKI_MONITOR_SUBSAMPLE 10
718
719
#define DAEMON_MAXRECORD 3
720
721
#define EMU_1HZ_NOT
722
723
#define FILE_LOGGING_ALWAYS
724
725
#define SDSPI_BITRATE 12500000
726
#define acs "ccs"
727
#define accs
728
#define aPART_TM4C1294NCPDT
729
#define aTIVAWARE
730
#define axdc_target_types__ ti/targets/std.h
731
732
/* Enable/Disable some test routines.
733
If not testing that, then FALSE */
734
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
735
#define GEO_TEST_WIFI_TCPIP_THROUGHPUT GEO_FALSE
736
737
/* Priorities */
738
#define HTTP_DAEMON_PRIORITY 4
739
#define MQTT_DAEMON_PRIORITY 4
740
#define MAIN_TASK_STARTUP_PRIORITY
741
#define MAIN_TASK_LOOP_PRIORITY
742
#define SYS_MGMT_TASK_PRIORITY 1
743
#define GEO_STANDARD_UART_TASK_PRIORITY 8
744
/* Maybe used to be 5? */
745
#define WIFI_DAEMON_TASK_PRIORITY 10
746
#define WIFI_STARTUP_TASK_PRIORITY 9
747
748
749
750
#endif
751
/**************************
752
****** End of Loki *******
753
**************************/
754
755
/**************************
756
****** Meadowlark *******
757
**************************/
758
#if GEO_APP_MEADOWLARK == GEO_TRUE
759
760
#define GEO_APP_EMBEDDED_PROGRAM_NAME "MEADOWLARK"
761
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "MEADOWLARK"
762
#define HTTP_DOMAIN_NAME "meadowlark.net"
763
764
/********************************************************
765
* Relating to boards and sensor hardware
766
*********************************************************/
767
/*** Primary elements **/
768
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
769
#define BOARD_PACTRON_1 GEO_FALSE
770
#define BOARD_UNIFIED_03 GEO_TRUE
771
772
#define USE_MAG_ARROW_HARDWARE GEO_FALSE
773
#define USE_LOKI_HARDWARE GEO_TRUE
774
775
/****************************************************
776
* Magnetometer options.
777
****************************************************/
778
/* A meta-define */
779
#define RUN_REAL_MFAM GEO_TRUE
780
781
#if RUN_REAL_MFAM == GEO_TRUE
782
#define MFAM_MODULE GEO_TRUE
783
#define EMULATE_MFAM_SENSOR GEO_FALSE
784
/* FID cycle is usually 1000, but it can be changed
785
* to test unusual situations */
786
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
787
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
788
#define GEO_MFAM_FULL_FILTER GEO_TRUE
789
790
#else
791
/* In this case we're emulating */
792
#define EMULATE_MFAM_SENSOR GEO_TRUE
793
#define MFAM_MODULE GEO_FALSE
794
/* FID cycle is usually 1000, but it can be changed
795
* to test unusual situations */
796
#define MFAM_EMULATOR_FID_CYCLE 1000
797
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
798
#define GEO_MFAM_FULL_FILTER GEO_TRUE
799
#endif
800
801
#define EMULATE_862_SENSOR GEO_NOT_RELEVANT
802
#define GEO_SERIAL_CESIUM_MAG GEO_NOT_RELEVANT
803
#define COUNT_862_MAGS GEO_NOT_RELEVANT
804
#define GEO_CM221_MAG_DATA GEO_NOT_RELEVANT
805
806
807
/********************************************************
808
* Relating to file systems and storage
809
*********************************************************/
810
811
#if EMBEDDED_DATA_STORAGE == GEO_TRUE
812
#endif
813
814
/* A meta-define */
815
#define USE_USB_STORAGE GEO_FALSE
816
#define USE_SD_STORAGE GEO_FALSE
817
818
#if USE_USB_STORAGE == GEO_TRUE
819
#define UNMIRRORED_STORAGE GEO_FALSE
820
#define EMBEDDED_DATA_STORAGE GEO_TRUE
821
#define GEO_SDCARD GEO_TRUE
822
#define GEO_USB_STORAGE GEO_TRUE
823
#define GEO_PRIMARY_STORAGE GEO_USB
824
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
825
#define GEO_LOG_FILES GEO_FALSE
826
#define FILES_PER_DIRECTORY 200
827
#define FILES_IN_DIRECTORIES GEO_TRUE
828
#define SECONDS_PER_DATA_FILE (5)
829
#define COUNT_862_MAGS 0
830
#define GM_SIZE_OF_APP_DATA_QUEUE 1600
831
#define COUNT_MFAM_BUFFERS 1500
832
#define GEO_RAM_FILE_BUFFER_SIZE 0
833
#define GEO_HARD_MAG_SUBSAMPLE 0
834
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
835
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
836
#endif
837
838
#elif USE_SD_STORAGE == GEO_TRUE
839
#define UNMIRRORED_STORAGE GEO_FALSE
840
#define EMBEDDED_DATA_STORAGE GEO_TRUE
841
#define GEO_SDCARD GEO_TRUE
842
#define GEO_USB_STORAGE GEO_TRUE
843
#define GEO_PRIMARY_STORAGE GEO_SD
844
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
845
#define GEO_LOG_FILES GEO_FALSE
846
#define FILES_PER_DIRECTORY 200
847
#define FILES_IN_DIRECTORIES GEO_TRUE
848
#define SECONDS_PER_DATA_FILE (5)
849
#define GM_SIZE_OF_APP_DATA_QUEUE 1600
850
#define COUNT_MFAM_BUFFERS 1500
851
#define GEO_RAM_FILE_BUFFER_SIZE 0
852
#define GEO_HARD_MAG_SUBSAMPLE 0
853
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
854
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
855
#endif
856
857
#else
858
#define UNMIRRORED_STORAGE GEO_TRUE
859
#define EMBEDDED_DATA_STORAGE GEO_FALSE
860
#define GEO_SDCARD GEO_TRUE
861
#define GEO_USB_STORAGE GEO_TRUE
862
//#define GEO_CACHE_LAST_FILE_INDEX GEO_FALSE
863
#define GEO_LOG_FILES GEO_TRUE
864
#define SECONDS_PER_DATA_FILE (1)
865
#define GEO_RAM_FILE_BUFFER_SIZE 60000
866
#define GM_SIZE_OF_APP_DATA_QUEUE 520
867
#define COUNT_MFAM_BUFFERS 500
868
#define BLOCKS_PER_ACQUISITION_DATA_FILE 100
869
#endif
870
871
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
872
#define ALLOW_DELETE_SURVEYS GEO_TRUE
873
874
875
/********************************************************
876
* MQTT, WiFi, and network
877
*********************************************************/
878
#define LTE_TEST GEO_FALSE
879
#define GEO_MQTT GEO_TRUE
880
#if LTE_TEST == GEO_TRUE
881
#define GEO_MQTT_SYNCH_REQUESTS GEO_TRUE
882
#define GEO_MQTT_CONNECT_TO_BROKER GEO_TRUE
883
#define GEO_WIFI_STATION_MODE GEO_TRUE
884
#else
885
#define GEO_MQTT_SYNCH_REQUESTS GEO_FALSE
886
#define GEO_WIFI_STATION_MODE GEO_FALSE
887
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
888
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
889
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
890
#endif
891
892
/* Wifi or Ethernet? */
893
#define GEO_NET_3100 GEO_TRUE
894
#define NUM_HTTP_DAEMONS (5)
895
#define NUM_MQTT_DAEMONS (2)
896
897
898
/********************************************************
899
* GPS and PPS
900
*********************************************************/
901
#define GPS_ENABLED GEO_TRUE
902
#define GEO_PPS_EVENTS GEO_TRUE
903
#define GEO_LOG_PPS_DATA GEO_TRUE
904
#define GEO_864_PPS_LOCK GEO_FALSE
905
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
906
907
#if GPS_ENABLED == GEO_TRUE
908
#define GEO_GPS_ADAFRUIT GEO_FALSE
909
#define GEO_GPS_TALLYSMAN_5431 GEO_FALSE
910
#if USE_LOKI_HARDWARE == GEO_TRUE
911
#define GEO_GPS_ZEDF9P GEO_TRUE
912
#define GEO_GPS_SIERRA_1110 GEO_FALSE
913
#else
914
#define GEO_GPS_SIERRA_1110 GEO_TRUE
915
#define GEO_GPS_ZEDF9P GEO_FALSE
916
#endif
917
#endif
918
919
920
921
/**************** Other devices **************************/
922
#if USE_LOKI_HARDWARE == GEO_TRUE
923
#define LOKI_PICKLE_SWITCH GEO_TRUE
924
#define LOKI_TWEETER GEO_TRUE
925
#define GEO_SPEAKER_DAC GEO_TRUE
926
#define GEO_SENSOR_LIGHT GEO_TRUE
927
#define GEO_STORAGE_LIGHT GEO_TRUE
928
#define GEO_PPS_LIGHT GEO_FALSE
929
#define GEO_WIFI_LIGHT GEO_TRUE
930
#define GEO_GPS_LIGHT GEO_TRUE
931
#define GEO_POWER_INDICATOR_LIGHT GEO_TRUE
932
#define GEO_INDICATORS GEO_TRUE
933
#define GEO_INDICATORS_BLINKERS GEO_TRUE
934
#define GEO_INDICATORS_SIREN GEO_TRUE
935
#else
936
#define GEO_INDICATORS GEO_FALSE
937
#define GEO_INDICATORS_BLINKERS GEO_FALSE
938
#define GEO_INDICATORS_SIREN GEO_FALSE
939
#define LOKI_PICKLE_SWITCH GEO_FALSE
940
#define LOKI_TWEETER GEO_FALSE
941
#define GEO_SPEAKER_DAC GEO_FALSE
942
#define GEO_SENSOR_LIGHT GEO_FALSE
943
#define GEO_STORAGE_LIGHT GEO_FALSE
944
#define GEO_PPS_LIGHT GEO_FALSE
945
#define GEO_WIFI_LIGHT GEO_FALSE
946
#define GEO_GPS_LIGHT GEO_FALSE
947
#define GEO_POWER_INDICATOR_LIGHT GEO_FALSE
948
#endif
949
950
#define GEO_I2C GEO_TRUE
951
/***********************************************************
952
* Batteries
953
************************************************************/
954
#define BATTERY_50_PERCENT (11.1)
955
#define BATTERY_20_PERCENT (10.5)
956
#define BATTERY_5_PERCENT (10.0)
957
958
/********************************************************************************
959
* Setting up sensor data types.
960
* These are used to identify the use of particular sensors in this application,
961
* The max number is used to set up the array "m_apsStorages", where it is
962
* preferable, in order to save space, not to have unused items.
963
* So, in this section, we try to make them contiguous.
964
********************************************************************************/
965
#define THIS_APP_MAG_DATA_TYPE 0
966
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MAG_DATA_TYPE + 1)
967
#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
968
#define THIS_APP_APP_EVENTS (THIS_APP_PPS_EVENTS + 1)
969
/* Used to define "m_apsStorages" */
970
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
971
//#define THIS_APP_MFAM_BLOCK_DATA_TYPE 6
972
973
/**************************************************************************/
974
/* Logging modes, indicating what the application should do with data.
975
* The order of these doesn't matter, but the total number of them matters,
976
* and they are used as indexes into "m_apsStorages" matters, so we
977
* want to keep that array small if we can. These are never saved in any
978
* DB, or transmitted over the network.
979
**************************************************************************/
980
#define GM_LOGGING_MODE_MONITOR_DATA (0)
981
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
982
/* IGNORE_ALL is not used in setting up m_apsStorages */
983
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
984
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
985
986
/**************************************************************************
987
* This number refers to the maximum number of storages that are
988
* set up into "m_apsStorages". There may be additional storages for
989
* other reasons, but that's what this one is about.
990
* If this isn't set up correctly then m_apsStorages will blow up.
991
**************************************************************************/
992
993
/* Files, monitor, and MQTT */
994
#define GEO_MAX_APP_STORAGES (3)
995
996
997
/********************************************************
998
* General application info. - name, versioning, etc.
999
*********************************************************/
1000
#define GEO_APP_MAJOR_VERSION "0"
1001
#define GEO_APP_MINOR_VERSION "8"
1002
#define GEO_SCHEMA_VERSION 8
1003
#error verify that this is the correct schema version
1004
1007
#if BOARD_UNIFIED_03 == GEO_TRUE
1008
#define GEO_APP_NAME "Meadowlark"
1009
#define GEO_SSID "Tezzeret"
1010
#if USE_MAG_ARROW_HARDWARE == GEO_TRUE
1011
#define GEO_7993_BATTERY_MONITOR GEO_TRUE
1012
#define MFAM_SYS_MGMT GEO_TRUE
1013
#elif USE_LOKI_HARDWARE == GEO_TRUE
1014
#define GEO_7998_BATTERY_MONITOR GEO_TRUE
1015
#define MFAM_SYS_MGMT GEO_FALSE
1016
#endif
1017
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL|0x03
1018
#endif
1019
1020
/*********************************************************************/
1021
/* Binary header in every file. */
1022
/*********************************************************************/
1023
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
1024
#define GEO_SINGLE_SURVEY GEO_FALSE
1025
#define GEO_FILE_SYNCH_EVENTS GEO_TRUE
1026
1027
/********************************************************
1028
* Queue and buffer sizes. These all need to be as large
1029
* as possible, while fitting into memory with each other.
1030
*********************************************************/
1031
#define GEO_LOAD_MFAM_SAMPLE_RATE_FROM_CONFIGS GEO_FALSE
1032
#define GEO_HARD_MAG_SUBSAMPLE_MQTT 200
1033
#define GEO_DYNAMIC_CFG_RECORDS_PER_FILE GEO_FALSE
1034
1035
1036
/***********************************************************
1037
* Relating to host if any
1038
**********************************************************/
1039
#define HOST_CONNECTED GEO_TRUE
1040
#define KNOWS_HOST_TIME GEO_TRUE
1041
1042
#define GEO_TCP_STREAMING GEO_FALSE
1043
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
1044
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
1045
1046
#define GEO_AUTO_START_LOGGING GEO_FALSE
1047
#define GEO_HARD_MAG_SUBSAMPLE 500
1048
#define GEO_LOKI_MONITOR_SUBSAMPLE 10
1049
1050
#define DAEMON_MAXRECORD 3
1051
1052
#define EMU_1HZ_NOT
1053
1054
#define FILE_LOGGING_ALWAYS
1055
1056
#define SDSPI_BITRATE 12500000
1057
#define acs "ccs"
1058
#define accs
1059
#define aPART_TM4C1294NCPDT
1060
#define aTIVAWARE
1061
#define axdc_target_types__ ti/targets/std.h
1062
1063
/* Enable/Disable some test routines.
1064
If not testing that, then FALSE */
1065
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
1066
#define GEO_TEST_WIFI_TCPIP_THROUGHPUT GEO_FALSE
1067
1068
1069
1070
#endif
1071
/**************************
1072
****** End of Meadowlark **
1073
**************************/
1074
1075
/****************************************
1076
************** Tranquility *************
1077
****************************************/
1078
#if GEO_APP_TRANQUILITY == GEO_TRUE
1079
1080
#define GEO_APP_EMBEDDED_PROGRAM_NAME "TRANQUILITY"
1081
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "TRANQUILITY"
1082
#define HTTP_DOMAIN_NAME "tranquility.net"
1083
1084
/********************************************************
1085
* Relating to board hardware
1086
*********************************************************/
1087
/*** Primary elements **/
1088
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
1089
#define BOARD_PACTRON_1 GEO_FALSE
1090
#define BOARD_UNIFIED_03 GEO_TRUE
1091
1092
#define USE_MAG_ARROW_HARDWARE GEO_FALSE
1093
#define USE_LOKI_HARDWARE GEO_TRUE
1094
1095
#define GEO_ALLOW_RUN_DISCONNECTED GEO_TRUE
1096
1097
/****************************************************
1098
* Magnetometer options.
1099
****************************************************/
1100
/* A meta-define */
1101
#define RUN_REAL_MFAM GEO_TRUE
1102
1103
#if RUN_REAL_MFAM == GEO_TRUE
1104
#define MFAM_MODULE GEO_TRUE
1105
#define EMULATE_MFAM_SENSOR GEO_FALSE
1106
/* FID cycle is usually 1000, but it can be changed
1107
* to test unusual situations */
1108
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
1109
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
1110
#define GEO_MFAM_FULL_FILTER GEO_TRUE
1111
1112
#else
1113
/* In this case we're emulating */
1114
#define EMULATE_MFAM_SENSOR GEO_TRUE
1115
#define MFAM_MODULE GEO_FALSE
1116
/* FID cycle is usually 1000, but it can be changed
1117
* to test unusual situations */
1118
#define MFAM_EMULATOR_FID_CYCLE 1000
1119
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
1120
#define GEO_MFAM_FULL_FILTER GEO_TRUE
1121
#endif
1122
1123
/********************************************************
1124
* Relating to file systems and storage
1125
*********************************************************/
1126
1127
/* A meta-define */
1128
#define USE_USB_STORAGE GEO_FALSE
1129
#define USE_SD_STORAGE GEO_TRUE
1130
1131
#if USE_USB_STORAGE == GEO_TRUE
1132
#define UNMIRRORED_STORAGE GEO_FALSE
1133
#define EMBEDDED_DATA_STORAGE GEO_TRUE
1134
#define GEO_SDCARD GEO_TRUE
1135
#define GEO_USB_STORAGE GEO_TRUE
1136
#define GEO_PRIMARY_STORAGE GEO_USB
1137
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
1138
#define GEO_LOG_FILES GEO_FALSE
1139
#define FILES_PER_DIRECTORY 200
1140
#define FILES_IN_DIRECTORIES GEO_TRUE
1141
#define SECONDS_PER_DATA_FILE (120)
1142
#define COUNT_862_MAGS 0
1143
#define GM_SIZE_OF_APP_DATA_QUEUE 1600
1144
#define COUNT_MFAM_BUFFERS 1500
1145
#define GEO_RAM_FILE_BUFFER_SIZE 0
1146
#define GEO_HARD_MAG_SUBSAMPLE 0
1147
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
1148
#define BLOCKS_PER_ACQUISITION_DATA_FILE 1200
1149
#endif
1150
1151
#elif USE_SD_STORAGE == GEO_TRUE
1152
#define UNMIRRORED_STORAGE GEO_FALSE
1153
#define EMBEDDED_DATA_STORAGE GEO_TRUE
1154
#define GEO_SDCARD GEO_TRUE
1155
#define GEO_USB_STORAGE GEO_TRUE
1156
#define GEO_PRIMARY_STORAGE GEO_SD
1157
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
1158
#define GEO_LOG_FILES GEO_FALSE
1159
#define FILES_PER_DIRECTORY 200
1160
#define FILES_IN_DIRECTORIES GEO_TRUE
1161
#define SECONDS_PER_DATA_FILE (120)
1162
#define COUNT_862_MAGS 0
1163
#define GM_SIZE_OF_APP_DATA_QUEUE 1600
1164
#define COUNT_MFAM_BUFFERS 1500
1165
#define GEO_RAM_FILE_BUFFER_SIZE 0
1166
#define GEO_HARD_MAG_SUBSAMPLE 0
1167
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
1168
#define BLOCKS_PER_ACQUISITION_DATA_FILE 1200
1169
#endif
1170
1171
#else
1172
#error Tranquility cannot run without embedded storage.
1173
#endif
1174
1175
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
1176
#define ALLOW_DELETE_SURVEYS GEO_TRUE
1177
1178
1179
/********************************************************
1180
* MQTT, WiFi, and network
1181
*********************************************************/
1182
#define LTE_TEST GEO_FALSE
1183
#define GEO_MQTT GEO_TRUE
1184
#if LTE_TEST == GEO_TRUE
1185
#define GEO_MQTT_SYNCH_REQUESTS GEO_TRUE
1186
//#define PASSKEY "94618894"
1187
//#define SSID_NAME "#Skyroam_v4u"
1188
#define GEO_MQTT_CONNECT_TO_BROKER GEO_TRUE
1189
#define GEO_WIFI_STATION_MODE GEO_TRUE
1190
#else
1191
#define GEO_MQTT_SYNCH_REQUESTS GEO_FALSE
1192
#define GEO_WIFI_STATION_MODE GEO_FALSE
1193
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
1194
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
1195
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
1196
#endif
1197
1198
/* Wifi or Ethernet? */
1199
#define GEO_NET_3100 GEO_TRUE
1200
#define NUM_HTTP_DAEMONS (5)
1201
#define NUM_MQTT_DAEMONS (2)
1202
1203
1204
/********************************************************
1205
* GPS and PPS
1206
*********************************************************/
1207
#define GPS_ENABLED GEO_TRUE
1208
#define GEO_PPS_EVENTS GEO_TRUE
1209
#define GEO_LOG_PPS_DATA GEO_TRUE
1210
1211
#if GPS_ENABLED == GEO_TRUE
1212
#define GEO_GPS_ADAFRUIT GEO_FALSE
1213
#define GEO_GPS_TALLYSMAN_5431 GEO_FALSE
1214
#if USE_LOKI_HARDWARE == GEO_TRUE
1215
#define GEO_GPS_ZEDF9P GEO_TRUE
1216
#define GEO_GPS_SIERRA_1110 GEO_FALSE
1217
#else
1218
#define GEO_GPS_SIERRA_1110 GEO_TRUE
1219
#define GEO_GPS_ZEDF9P GEO_FALSE
1220
#endif
1221
#endif
1222
1223
/**************** Other devices **************************/
1224
#if USE_LOKI_HARDWARE == GEO_TRUE
1225
#define LOKI_PICKLE_SWITCH GEO_FALSE
1226
#define LOKI_TWEETER GEO_TRUE
1227
#define GEO_SPEAKER_DAC GEO_TRUE
1228
#define GEO_SENSOR_LIGHT GEO_TRUE
1229
#define GEO_STORAGE_LIGHT GEO_TRUE
1230
#define GEO_PPS_LIGHT GEO_FALSE
1231
#define GEO_WIFI_LIGHT GEO_TRUE
1232
#define GEO_GPS_LIGHT GEO_TRUE
1233
#define GEO_POWER_INDICATOR_LIGHT GEO_TRUE
1234
#define GEO_INDICATORS GEO_TRUE
1235
#define GEO_INDICATORS_BLINKERS GEO_TRUE
1236
#define GEO_INDICATORS_SIREN GEO_TRUE
1237
#else
1238
#define GEO_INDICATORS GEO_FALSE
1239
#define GEO_INDICATORS_BLINKERS GEO_FALSE
1240
#define GEO_INDICATORS_SIREN GEO_FALSE
1241
#define LOKI_PICKLE_SWITCH GEO_FALSE
1242
#define LOKI_TWEETER GEO_FALSE
1243
#define GEO_SPEAKER_DAC GEO_FALSE
1244
#define GEO_SENSOR_LIGHT GEO_FALSE
1245
#define GEO_STORAGE_LIGHT GEO_FALSE
1246
#define GEO_PPS_LIGHT GEO_FALSE
1247
#define GEO_WIFI_LIGHT GEO_FALSE
1248
#define GEO_GPS_LIGHT GEO_FALSE
1249
#define GEO_POWER_INDICATOR_LIGHT GEO_FALSE
1250
#endif
1251
1252
#define GEO_I2C GEO_TRUE
1253
#define GEO_864_PPS_LOCK GEO_FALSE
1254
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
1255
1256
/***********************************************************
1257
* Batteries
1258
************************************************************/
1259
#define BATTERY_50_PERCENT (11.1)
1260
#define BATTERY_20_PERCENT (10.5)
1261
#define BATTERY_5_PERCENT (10.0)
1262
1263
/********************************************************************************
1264
* Setting up sensor data types.
1265
* These are used to identify the use of particular sensors in this application,
1266
* The max number is used to set up the array "m_apsStorages", where it is
1267
* preferable, in order to save space, not to have unused items.
1268
* So, in this section, we try to make them contiguous.
1269
********************************************************************************/
1270
#define THIS_APP_MAG_DATA_TYPE 0
1271
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MAG_DATA_TYPE + 1)
1272
#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
1273
#define THIS_APP_APP_EVENTS (THIS_APP_PPS_EVENTS + 1)
1274
/* Used to define "m_apsStorages" */
1275
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
1276
1277
/**************************************************************************/
1278
/* Logging modes, indicating what the application should do with data.
1279
* The order of these doesn't matter, but the total number of them matters,
1280
* and they are used as indexes into "m_apsStorages" matters, so we
1281
* want to keep that array small if we can. These are never saved in any
1282
* DB, or transmitted over the network.
1283
**************************************************************************/
1284
#define GM_LOGGING_MODE_MONITOR_DATA (0)
1285
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
1286
#define GM_LOGGING_SAVE_DATA_TO_FILES_DISCONNECTED (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
1287
/* IGNORE_ALL is not used in setting up m_apsStorages */
GM_LOGGING_SAVE_DATA_TO_FILES
1288
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES_DISCONNECTED + 1)
1289
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
1290
1291
/************************************************************************/
1297
/* Files, monitor, and MQTT */
1298
#define GEO_MAX_APP_STORAGES (3)
1299
1300
/********************************************************
1301
* General application info. - name, versioning, etc.
1302
*********************************************************/
1303
#define GEO_APP_MAJOR_VERSION "0"
1304
#define GEO_APP_MINOR_VERSION "1"
1305
#define GEO_SCHEMA_VERSION 9
1306
#error verify that this is the correct schema version
1307
1310
#if BOARD_UNIFIED_03 == GEO_TRUE
1311
#define GEO_APP_NAME "Tranquility"
1312
#define GEO_SSID "Tranquility"
1313
#if USE_MAG_ARROW_HARDWARE == GEO_TRUE
1314
#define GEO_7993_BATTERY_MONITOR GEO_TRUE
1315
#define MFAM_SYS_MGMT GEO_TRUE
1316
#elif USE_LOKI_HARDWARE == GEO_TRUE
1317
#define GEO_7998_BATTERY_MONITOR GEO_TRUE
1318
#define MFAM_SYS_MGMT GEO_FALSE
1319
#endif
1320
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL|0x03
1321
#endif
1322
1323
/*********************************************************************/
1324
/* Binary header in every file. */
1325
/*********************************************************************/
1326
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
1327
1328
#define GEO_CM221_MAG_DATA GEO_TRUE
1329
#define GEO_SINGLE_SURVEY GEO_FALSE
1330
#define GEO_FILE_SYNCH_EVENTS GEO_TRUE
1331
1332
/********************************************************
1333
* Queue and buffer sizes. These all need to be as large
1334
* as possible, while fitting into memory with each other.
1335
*********************************************************/
1336
#define GEO_LOAD_MFAM_SAMPLE_RATE_FROM_CONFIGS GEO_FALSE
1337
#define GEO_HARD_MAG_SUBSAMPLE_MQTT 200
1338
#define GEO_DYNAMIC_CFG_RECORDS_PER_FILE GEO_FALSE
1339
1340
1341
/***********************************************************
1342
* Relating to host if any
1343
**********************************************************/
1344
#define HOST_CONNECTED GEO_TRUE
1345
#define KNOWS_HOST_TIME GEO_TRUE
1346
1347
#define GEO_TCP_STREAMING GEO_FALSE
1348
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
1349
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
1350
1351
#define GEO_AUTO_START_LOGGING GEO_FALSE
1352
#define GEO_HARD_MAG_SUBSAMPLE 500
1353
#define GEO_LOKI_MONITOR_SUBSAMPLE 10
1354
1355
#define DAEMON_MAXRECORD 3
1356
1357
#define EMU_1HZ_NOT
1358
1359
#define FILE_LOGGING_ALWAYS
1360
1361
#define SDSPI_BITRATE 12500000
1362
#define acs "ccs"
1363
#define accs
1364
#define aPART_TM4C1294NCPDT
1365
#define aTIVAWARE
1366
#define axdc_target_types__ ti/targets/std.h
1367
1368
/* Enable/Disable some test routines.
1369
If not testing that, then FALSE */
1370
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
1371
#define GEO_TEST_WIFI_TCPIP_THROUGHPUT GEO_FALSE
1372
1373
1374
1375
#endif
1376
/**************************
1377
****** End of Loki *******
1378
**************************/
1379
1380
/****************************************************************
1381
********************* Serenity *************************************
1382
*****************************************************************/
1383
#if GEO_APP_SERENITY == GEO_TRUE
1384
1385
#define GEO_APP_EMBEDDED_PROGRAM_NAME "Serenity"
1386
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "Serenity"
1387
#define HTTP_DOMAIN_NAME "ser.net"
1388
1389
/********************************************************
1390
* Relating to boards and sensor hardware
1391
*********************************************************/
1392
/*** Primary elements **/
1393
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
1394
#define BOARD_PACTRON_1 GEO_FALSE
1395
#define BOARD_UNIFIED_03 GEO_TRUE
1396
1397
/***************************************************
1398
* Magnetometer options
1399
**************************************************/
1400
#define EMULATE_862_SENSOR GEO_FALSE
1401
#define GEO_SERIAL_CESIUM_MAG GEO_TRUE
1402
1403
#define GEO_INDICATORS GEO_TRUE
1404
#define GEO_INDICATORS_BLINKERS GEO_TRUE
1405
#define GEO_INDICATORS_SIREN GEO_TRUE
1406
1407
/********************************************************
1408
* Relating to file systems and storage
1409
*********************************************************/
1410
#define GEO_ALLOW_RUN_DISCONNECTED GEO_TRUE
1411
1412
/* A meta-define */
1413
#define USE_USB_STORAGE GEO_TRUE
1414
#define USE_SD_STORAGE GEO_FALSE
1415
1416
#if USE_USB_STORAGE == GEO_TRUE
1417
#define UNMIRRORED_STORAGE GEO_FALSE
1418
#define EMBEDDED_DATA_STORAGE GEO_TRUE
1419
#define GEO_SDCARD GEO_FALSE
1420
#define GEO_USB_STORAGE GEO_TRUE
1421
#define GEO_PRIMARY_STORAGE GEO_USB
1422
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
1423
#define GEO_LOG_FILES GEO_TRUE
1424
#define FILES_PER_DIRECTORY 200
1425
#define FILES_IN_DIRECTORIES GEO_TRUE
1426
#define SECONDS_PER_DATA_FILE (60)
1427
#elif USE_SD_STORAGE == GEO_TRUE
1428
#error ON engineering machine SD card isn't working. This is not a valid choice.'
1429
#define UNMIRRORED_STORAGE GEO_FALSE
1430
#define EMBEDDED_DATA_STORAGE GEO_TRUE
1431
#define GEO_SDCARD GEO_TRUE
1432
#define GEO_USB_STORAGE GEO_TRUE
1433
#define GEO_PRIMARY_STORAGE GEO_SD
1434
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
1435
#define GEO_LOG_FILES GEO_FALSE
1436
#define FILES_PER_DIRECTORY 200
1437
#define FILES_IN_DIRECTORIES GEO_TRUE
1438
#define SECONDS_PER_DATA_FILE (60)
1439
#else
1440
#error Not a valid choice for this application
1441
#define UNMIRRORED_STORAGE GEO_TRUE
1442
#define EMBEDDED_DATA_STORAGE GEO_FALSE
1443
#define GEO_SDCARD GEO_TRUE
1444
#define GEO_USB_STORAGE GEO_TRUE
1445
#define GEO_PRIMARY_STORAGE GEO_USB
1446
//#define GEO_CACHE_LAST_FILE_INDEX GEO_FALSE
1447
#define GEO_LOG_FILES GEO_TRUE
1448
#define SECONDS_PER_DATA_FILE (60)
1449
#endif
1450
1451
#define LTE_TEST GEO_FALSE
1452
1453
/********************************************************
1454
* MQTT, WiFi, and network
1455
*********************************************************/
1456
#define GEO_MQTT GEO_TRUE
1457
#if LTE_TEST == GEO_TRUE
1458
#define GEO_MQTT_SYNCH_REQUESTS GEO_TRUE
1459
//#define PASSKEY "94618894"
1460
//#define SSID_NAME "#Skyroam_v4u"
1461
#define GEO_MQTT_CONNECT_TO_BROKER GEO_TRUE
1462
#define GEO_WIFI_STATION_MODE GEO_TRUE
1463
#else
1464
#define GEO_MQTT_SYNCH_REQUESTS GEO_FALSE
1465
#define GEO_WIFI_STATION_MODE GEO_FALSE
1466
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
1467
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
1468
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
1469
1470
//#define PASSKEY "usa987011"
1471
//#define SSID_NAME "GEO-Software-Team"
1472
#endif
1473
/* Wifi or Ethernet? */
1474
#define GEO_NET_3100 GEO_TRUE
1475
1476
#define NUM_HTTP_DAEMONS 5
1477
#define NUM_MQTT_DAEMONS 2
1478
1479
/********************************************************
1480
* GPS and PPS
1481
*********************************************************/
1482
#define GPS_ENABLED GEO_TRUE
1483
1484
/***** Both normally true, but can be false for testing without PPS */
1485
#define GEO_PPS_EVENTS GEO_TRUE
1486
#define GEO_864_PPS_LOCK GEO_TRUE
1487
1488
#if GPS_ENABLED == GEO_TRUE
1489
#define GEO_GPS_ADAFRUIT GEO_FALSE
1490
#define GEO_GPS_TALLYSMAN_5431 GEO_TRUE
1491
#define GEO_GPS_SIERRA_1110 GEO_FALSE
1492
#endif
1493
1494
1495
/**************** Other devices **************************/
1496
#define GEO_I2C GEO_TRUE
1497
1498
#define GEO_SENSOR_LIGHT GEO_TRUE
1499
#define GEO_STORAGE_LIGHT GEO_TRUE
1500
#define GEO_PPS_LIGHT GEO_TRUE
1501
#define GEO_GPS_LIGHT GEO_TRUE
1502
1503
1504
1505
/********************************************************************************
1506
* Setting up sensor data types.
1507
* These are used to identify the use of particular sensors in this application,
1508
* The max number is used to set up the array "m_apsStorages", where it is
1509
* preferable, in order to save space, not to have unused items.
1510
* So, in this section, we try to make them contiguous.
1511
********************************************************************************/
1512
//#define THIS_APP_MAG_DATA_TYPE 1
1513
#define THIS_APP_993_DATA_TYPE 0
1514
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_993_DATA_TYPE + 1)
1515
#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
1516
#define THIS_APP_APP_EVENTS (THIS_APP_PPS_EVENTS + 1)
1517
/* Used to define "m_apsStorages" */
1518
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
1519
//#define THIS_APP_MFAM_BLOCK_DATA_TYPE 6
1520
1521
/**************************************************************************/
1522
/* Logging modes, indicating what the application should do with data.
1523
* The order of these doesn't matter, but the total number of them matters,
1524
* and they are used as indexes into "m_apsStorages" matters, so we
1525
* want to keep that array small if we can. These are never saved in any
1526
* DB, or transmitted over the network.
1527
**************************************************************************/
1528
#define GM_LOGGING_MODE_MONITOR_DATA (0)
1529
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
1530
#define GM_LOGGING_SAVE_DATA_TO_FILES_DISCONNECTED (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
1531
/* IGNORE_ALL is not used in setting up m_apsStorages */
1532
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES_DISCONNECTED + 1)
1533
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
1534
1535
/**************************************************************************
1536
* This number refers to the maximum number of storages that are
1537
* set up into "m_apsStorages". There may be additional storages for
1538
* other reasons, but that's what this one is about.
1539
* If this isn't set up correctly then m_apsStorages will blow up.
1540
**************************************************************************/
1541
#define GEO_MAX_APP_STORAGES (2)
// Maximum numnber of storages
1542
1543
1544
/********************************************************
1545
* General application info. - name, versioning, etc.
1546
*********************************************************/
1547
#define GEO_APP_MAJOR_VERSION "3"
1548
#define GEO_APP_MINOR_VERSION "1"
1549
#define GEO_SCHEMA_VERSION 8
1550
#error verify that this is the correct schema version
1553
#if BOARD_TIVA_LAUNCHPAD == GEO_TRUE
1554
#define GEO_APP_NAME "Geometrics G864-LP"
1555
#define GEO_SSID "Tezzeret-LP-728"
1556
#endif
1557
#if BOARD_PACTRON_1 == GEO_TRUE
1558
#define GEO_APP_NAME "Geometrics G864-PB"
1559
#define GEO_SSID "Tezzeret-PB"
1560
#endif
1561
#if BOARD_UNIFIED_03 == GEO_TRUE
1562
#define GEO_APP_NAME "Geometrics G864"
1563
#define GEO_SSID "Tezzeret"
1564
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL|0x03
1565
#define MFAM_SYS_MGMT GEO_FALSE
1566
#define GEO_4151_BATTERY_MONITOR GEO_TRUE
1567
#endif
1568
1569
1570
/*********************************************************************/
1571
/* In order to debug the 864, sometimes we want to have text files */
1572
/* rather than the binary files expected by the Android client. */
1573
/* When debugging in this fashion, using a browser use GEO_TRUE */
1574
/* Use GEO_FALSE for using the Android app. */
1575
/*********************************************************************/
1576
#define GEO_864_DEBUG_TEXT_FILES GEO_FALSE
1577
#if GEO_864_DEBUG_TEXT_FILES == GEO_TRUE
1578
#define GEO_WRITE_TEXT_FILE_HEADERS GEO_TRUE
1579
#else
1580
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
1581
#endif
1582
#define GEO_CM221_MAG_DATA GEO_TRUE
1583
// Single survey true only for testing.
1584
#define GEO_SINGLE_SURVEY GEO_FALSE
1585
#define GEO_FILE_SYNCH_EVENTS GEO_TRUE
1586
1587
#if EMULATE_862_SENSOR == GEO_TRUE
1588
#define EMULATE_862_RATE 10
1589
#endif
1590
1591
#if (GEO_SERIAL_CESIUM_MAG == GEO_TRUE) || (EMULATE_862_SENSOR == GEO_TRUE)
1592
#define BLOCKS_PER_ACQUISITION_DATA_FILE 50
1593
#endif
1594
1595
1596
1597
/********************************************************
1598
* Queue and buffer sizes. These all need to be as large
1599
* as possible, while fitting into memory with each other.
1600
*********************************************************/
1601
#if UNMIRRORED_STORAGE == GEO_TRUE
1602
#define GEO_RAM_FILE_BUFFER_SIZE 80000
1603
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
1604
#define COUNT_MFAM_BUFFERS 0
1605
#define COUNT_862_MAGS 100
1606
#define GM_SIZE_OF_APP_DATA_QUEUE 120
1607
#elif EMULATE_862_SENSOR == GEO_TRUE
1608
#define COUNT_MFAM_BUFFERS 0
1609
#define COUNT_862_MAGS 400
1610
#define GM_SIZE_OF_APP_DATA_QUEUE 500
1611
#endif
1612
#endif
1613
1614
#if EMBEDDED_DATA_STORAGE == GEO_TRUE
1615
1616
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
1617
#define COUNT_MFAM_BUFFERS 0
1618
#define COUNT_862_MAGS 400
1619
#define GM_SIZE_OF_APP_DATA_QUEUE 500
1620
#elif EMULATE_862_SENSOR == GEO_TRUE
1621
#define COUNT_MFAM_BUFFERS 0
1622
#define COUNT_862_MAGS 400
1623
#define GM_SIZE_OF_APP_DATA_QUEUE 500
1624
#endif
1625
#endif
1626
1627
1628
1629
1630
#define GEO_TCP_STREAMING GEO_FALSE
1631
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
1632
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
1633
#define ALLOW_DELETE_SURVEYS GEO_TRUE
1634
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
1635
1636
#define GEO_LOG_PPS_DATA GEO_TRUE
1637
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
1638
#define GEO_AUTO_START_LOGGING GEO_FALSE
1639
#define GEO_HARD_MAG_SUBSAMPLE 500
1640
1641
#define DAEMON_MAXRECORD 3
1642
1643
/***********************************************************
1644
* Relating to host if any
1645
**********************************************************/
1646
#define HOST_CONNECTED GEO_TRUE
1647
#define KNOWS_HOST_TIME GEO_TRUE
1648
1649
1650
#define EMU_1HZ_NOT
1651
1652
#define FILE_LOGGING_ALWAYS
1653
//#define GEO_TEXT_MODE_ONLY
1654
1655
#define SDSPI_BITRATE 12500000
1656
#define acs "ccs"
1657
#define accs
1658
#define aPART_TM4C1294NCPDT
1659
#define aTIVAWARE
1660
#define axdc_target_types__ ti/targets/std.h
1661
1662
/* Enable/Disable some test routines.
1663
If not testing that, then FALSE */
1664
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
1665
#define GEO_TEST_WIFI_TCPIP_THROUGHPUT GEO_FALSE
1666
1667
1668
#endif
1669
1670
/****************************************************************
1671
********************* Intrepid - MagEx rover, ****************
1672
*****************************************************************/
1673
#if GEO_APP_INTREPID == GEO_TRUE
1674
1675
#define GEO_APP_EMBEDDED_PROGRAM_NAME "Intrepid"
1676
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "Intrepid"
1677
#define HTTP_DOMAIN_NAME "intrepid.net"
1678
1679
/********************************************************
1680
* Relating to boards and sensor hardware
1681
*********************************************************/
1682
/*** Primary elements **/
1683
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
1684
#define BOARD_PACTRON_1 GEO_FALSE
1685
#define BOARD_UNIFIED_03 GEO_TRUE
1686
1687
#define USE_MAG_ARROW_HARDWARE GEO_FALSE
1688
#define USE_LOKI_HARDWARE GEO_TRUE
1689
1690
/***************************************************
1691
* Magnetometer options
1692
**************************************************/
1693
/* A meta-define */
1694
#define RUN_REAL_MFAM GEO_TRUE
1695
1696
#if RUN_REAL_MFAM == GEO_TRUE
1697
#define MFAM_MODULE GEO_TRUE
1698
#define EMULATE_MFAM_SENSOR GEO_FALSE
1699
/* FID cycle is usually 1000, but it can be changed
1700
* to test unusual situations */
1701
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
1702
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
1703
#define GEO_MFAM_FULL_FILTER GEO_TRUE
1704
1705
#else
1706
/* In this case we're emulating */
1707
#define EMULATE_MFAM_SENSOR GEO_TRUE
1708
#define MFAM_MODULE GEO_FALSE
1709
/* FID cycle is usually 1000, but it can be changed
1710
* to test unusual situations */
1711
#define MFAM_EMULATOR_FID_CYCLE 1000
1712
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
1713
#define GEO_MFAM_FULL_FILTER GEO_TRUE
1714
#endif
1715
1716
#define EMULATE_862_SENSOR GEO_NOT_RELEVANT
1717
#define GEO_SERIAL_CESIUM_MAG GEO_NOT_RELEVANT
1718
#define COUNT_862_MAGS GEO_NOT_RELEVANT
1719
#define GEO_CM221_MAG_DATA GEO_NOT_RELEVANT
1720
1721
/********************************************************
1722
* Relating to file systems and storage
1723
*********************************************************/
1724
#define GEO_ALLOW_RUN_DISCONNECTED GEO_TRUE
1725
1726
/* A meta-define */
1727
#define USE_USB_STORAGE GEO_FALSE
1728
#define USE_SD_STORAGE GEO_TRUE
1729
1730
#if USE_USB_STORAGE == GEO_TRUE
1731
#define UNMIRRORED_STORAGE GEO_FALSE
1732
#define EMBEDDED_DATA_STORAGE GEO_TRUE
1733
#define GEO_SDCARD GEO_TRUE
1734
#define GEO_USB_STORAGE GEO_TRUE
1735
#define GEO_PRIMARY_STORAGE GEO_USB
1736
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
1737
#define GEO_LOG_FILES GEO_TRUE
1738
#define FILES_PER_DIRECTORY 200
1739
#define FILES_IN_DIRECTORIES GEO_TRUE
1740
#define SECONDS_PER_DATA_FILE (120)
1741
#define COUNT_862_MAGS 0
1742
#define GM_SIZE_OF_APP_DATA_QUEUE 1600
1743
#define COUNT_MFAM_BUFFERS 1500
1744
#define GEO_RAM_FILE_BUFFER_SIZE 0
1745
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
1746
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
1747
#endif
1748
1749
#elif USE_SD_STORAGE == GEO_TRUE
1750
#define UNMIRRORED_STORAGE GEO_FALSE
1751
#define EMBEDDED_DATA_STORAGE GEO_TRUE
1752
#define GEO_SDCARD GEO_TRUE
1753
#define GEO_USB_STORAGE GEO_TRUE
1754
#define GEO_PRIMARY_STORAGE GEO_SD
1755
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
1756
#define GEO_LOG_FILES GEO_TRUE
1757
#define GEO_USES_APP_CONFIG_FILES GEO_TRUE
1758
#define GEO_CONFIG_STORAGE "1:"
1759
#define GEO_LOG_STORAGE "1:"
1760
#define FILES_PER_DIRECTORY 200
1761
#define FILES_IN_DIRECTORIES GEO_TRUE
1762
#define SECONDS_PER_DATA_FILE (5)
1763
#define GM_SIZE_OF_APP_DATA_QUEUE 1600
1764
#define COUNT_MFAM_BUFFERS 1500
1765
#define GEO_RAM_FILE_BUFFER_SIZE 0
1766
#define GEO_HARD_MAG_SUBSAMPLE 0
1767
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
1768
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
1769
#endif
1770
1771
#else
1772
#error not a valid choice for this application.
1773
#endif
1774
1775
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
1776
#define ALLOW_DELETE_SURVEYS GEO_TRUE
1777
1778
1779
/********************************************************
1780
* MQTT, WiFi, and network
1781
*********************************************************/
1782
#define LTE_TEST GEO_FALSE
1783
#define GEO_MQTT GEO_TRUE
1784
#if LTE_TEST == GEO_TRUE
1785
#define GEO_MQTT_SYNCH_REQUESTS GEO_TRUE
1786
//#define PASSKEY "94618894"
1787
//#define SSID_NAME "#Skyroam_v4u"
1788
#define GEO_MQTT_CONNECT_TO_BROKER GEO_TRUE
1789
#define GEO_WIFI_STATION_MODE GEO_TRUE
1790
#else
1791
#define GEO_MQTT_SYNCH_REQUESTS GEO_FALSE
1792
#define GEO_WIFI_STATION_MODE GEO_FALSE
1793
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
1794
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
1795
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
1796
#define GEO_DYNAMIC_WIFI_SSID GEO_TRUE
1797
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
1798
1799
1800
1801
#endif
1802
/* Wifi or Ethernet? */
1803
#define GEO_NET_3100 GEO_TRUE
1804
1805
#define NUM_HTTP_DAEMONS 5
1806
#define NUM_MQTT_DAEMONS 2
1807
1808
/********************************************************
1809
* GPS and PPS
1810
*********************************************************/
1811
#define GPS_ENABLED GEO_TRUE
1812
1813
/***** Both normally true, but can be false for testing without PPS */
1814
#define GEO_PPS_EVENTS GEO_TRUE
1815
#define CHOOSE_PPS_DUTY_CYCLE GEO_TRUE
1816
#define GEO_LOG_PPS_DATA GEO_TRUE
1817
#define GEO_864_PPS_LOCK GEO_FALSE
1818
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
1819
1820
#if GPS_ENABLED == GEO_TRUE
1821
#define GEO_GPS_ADAFRUIT GEO_FALSE
1822
#define GEO_GPS_TALLYSMAN_5431 GEO_FALSE
1823
#if USE_LOKI_HARDWARE == GEO_TRUE
1824
#define GEO_GPS_ZEDF9P GEO_TRUE
1825
#define GEO_GPS_SIERRA_1110 GEO_FALSE
1826
#else
1827
#define GEO_GPS_SIERRA_1110 GEO_TRUE
1828
#define GEO_GPS_ZEDF9P GEO_FALSE
1829
#endif
1830
#endif
1831
1832
/**************** Other devices **************************/
1833
#if USE_LOKI_HARDWARE == GEO_TRUE
1834
#define LOKI_PICKLE_SWITCH GEO_TRUE
1835
#define LOKI_TWEETER GEO_TRUE
1836
#define GEO_SPEAKER_DAC GEO_TRUE
1837
#define GEO_SENSOR_LIGHT GEO_TRUE
1838
#define GEO_STORAGE_LIGHT GEO_TRUE
1839
#define GEO_PPS_LIGHT GEO_FALSE
1840
#define GEO_WIFI_LIGHT GEO_TRUE
1841
#define GEO_GPS_LIGHT GEO_TRUE
1842
#define GEO_POWER_INDICATOR_LIGHT GEO_TRUE
1843
#define GEO_INDICATORS GEO_TRUE
1844
#define GEO_INDICATORS_BLINKERS GEO_TRUE
1845
#define GEO_INDICATORS_SIREN GEO_TRUE
1846
#else
1847
#define GEO_INDICATORS GEO_FALSE
1848
#define GEO_INDICATORS_BLINKERS GEO_FALSE
1849
#define GEO_INDICATORS_SIREN GEO_FALSE
1850
#define LOKI_PICKLE_SWITCH GEO_FALSE
1851
#define LOKI_TWEETER GEO_FALSE
1852
#define GEO_SPEAKER_DAC GEO_FALSE
1853
#define GEO_SENSOR_LIGHT GEO_FALSE
1854
#define GEO_STORAGE_LIGHT GEO_FALSE
1855
#define GEO_PPS_LIGHT GEO_FALSE
1856
#define GEO_WIFI_LIGHT GEO_FALSE
1857
#define GEO_GPS_LIGHT GEO_FALSE
1858
#define GEO_POWER_INDICATOR_LIGHT GEO_FALSE
1859
#endif
1860
1861
#define GEO_I2C GEO_TRUE
1862
1863
/***********************************************************
1864
* Batteries
1865
************************************************************/
1866
#define BATTERY_50_PERCENT (11.1)
1867
#define BATTERY_20_PERCENT (10.5)
1868
#define BATTERY_5_PERCENT (10.0)
1869
1870
/********************************************************************************
1871
* Setting up sensor data types.
1872
* These are used to identify the use of particular sensors in this application,
1873
* The max number is used to set up the array "m_apsStorages", where it is
1874
* preferable, in order to save space, not to have unused items.
1875
* So, in this section, we try to make them contiguous.
1876
********************************************************************************/
1877
#define THIS_APP_MAG_DATA_TYPE 0
1878
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MAG_DATA_TYPE + 1)
1879
#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
1880
#define THIS_APP_APP_EVENTS (THIS_APP_PPS_EVENTS + 1)
1881
/* Used to define "m_apsStorages" */
1882
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
1883
1884
/**************************************************************************/
1885
/* Logging modes, indicating what the application should do with data.
1886
* The order of these doesn't matter, but the total number of them matters,
1887
* and they are used as indexes into "m_apsStorages" matters, so we
1888
* want to keep that array small if we can. These are never saved in any
1889
* DB, or transmitted over the network.
1890
**************************************************************************/
1891
#define GM_LOGGING_MODE_MONITOR_DATA (0)
1892
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
1893
#define GM_LOGGING_SAVE_DATA_TO_FILES_DISCONNECTED (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
1894
/* IGNORE_ALL is not used in setting up m_apsStorages */
1895
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES_DISCONNECTED + 1)
1896
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
1897
1898
/**************************************************************************
1899
* This number refers to the maximum number of storages that are
1900
* set up into "m_apsStorages". There may be additional storages for
1901
* other reasons, but that's what this one is about.
1902
* If this isn't set up correctly then m_apsStorages will blow up.
1903
**************************************************************************/
1904
#define GEO_MAX_APP_STORAGES (3)
// Maximum numnber of storages
1905
1906
/********************************************************
1907
* General application info. - name, versioning, etc.
1908
*********************************************************/
1909
#define GEO_APP_MAJOR_VERSION "0"
1910
#define GEO_APP_MINOR_VERSION "1"
1911
#define GEO_SCHEMA_VERSION 8
1912
#error verify that this is the correct schema version
1913
1916
#if BOARD_UNIFIED_03 == GEO_TRUE
1917
#define GEO_APP_NAME "Intrepid"
1918
#define GEO_SSID "Tezzeret"
1919
#if USE_MAG_ARROW_HARDWARE == GEO_TRUE
1920
#define GEO_7993_BATTERY_MONITOR GEO_TRUE
1921
#define MFAM_SYS_MGMT GEO_TRUE
1922
#elif USE_LOKI_HARDWARE == GEO_TRUE
1923
#define GEO_7998_BATTERY_MONITOR GEO_TRUE
1924
#define MFAM_SYS_MGMT GEO_FALSE
1925
#endif
1926
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL|0x03
1927
#endif
1928
1929
/*********************************************************************/
1930
/* Binary header in every file. */
1931
/*********************************************************************/
1932
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
1933
1934
#define GEO_SINGLE_SURVEY GEO_FALSE
1935
#define GEO_FILE_SYNCH_EVENTS GEO_TRUE
1936
1937
/********************************************************
1938
* Queue and buffer sizes. These all need to be as large
1939
* as possible, while fitting into memory with each other.
1940
*********************************************************/
1941
#define GEO_LOAD_MFAM_SAMPLE_RATE_FROM_CONFIGS GEO_FALSE
1942
#define GEO_HARD_MAG_SUBSAMPLE_MQTT 200
1943
#define GEO_DYNAMIC_CFG_RECORDS_PER_FILE GEO_FALSE
1944
1945
1946
/***********************************************************
1947
* Relating to host if any
1948
**********************************************************/
1949
#define HOST_CONNECTED GEO_TRUE
1950
#define KNOWS_HOST_TIME GEO_TRUE
1951
1952
1953
#define DAEMON_MAXRECORD 3
1954
1955
#define GEO_TCP_STREAMING GEO_FALSE
1956
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
1957
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
1958
1959
#define GEO_LOG_PPS_DATA GEO_TRUE
1960
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
1961
#define GEO_AUTO_START_LOGGING GEO_FALSE
1962
#define GEO_HARD_MAG_SUBSAMPLE 500
1963
#define GEO_LOKI_MONITOR_SUBSAMPLE 10
1964
1965
#define EMU_1HZ_NOT
1966
1967
#define FILE_LOGGING_ALWAYS
1968
//#define GEO_TEXT_MODE_ONLY
1969
1970
#define SDSPI_BITRATE 12500000
1971
#define acs "ccs"
1972
#define accs
1973
#define aPART_TM4C1294NCPDT
1974
#define aTIVAWARE
1975
#define axdc_target_types__ ti/targets/std.h
1976
1977
/* Enable/Disable some test routines.
1978
If not testing that, then FALSE */
1979
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
1980
#define GEO_TEST_WIFI_TCPIP_THROUGHPUT GEO_FALSE
1981
1982
1983
#endif
1984
1985
/****************************************************************
1986
********************* Eagle - MagArrow rover ****************
1987
*****************************************************************/
1988
#if GEO_APP_EAGLE == GEO_TRUE
1989
1990
#define GEO_APP_EMBEDDED_PROGRAM_NAME "Eagle"
1991
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "Eagle"
1992
#define HTTP_DOMAIN_NAME "eagle.net"
1993
#define GEO_APP_MAJOR_VERSION "0"
1994
#define GEO_APP_MINOR_VERSION "1"
1995
1996
1997
/********************************************************
1998
* Relating to boards and sensor hardware
1999
*********************************************************/
2000
/*** Primary elements **/
2001
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
2002
#define BOARD_PACTRON_1 GEO_FALSE
2003
#define BOARD_UNIFIED_03 GEO_TRUE
2004
2005
#define USE_MAG_ARROW_HARDWARE GEO_TRUE
2006
#define USE_LOKI_HARDWARE GEO_FALSE
2007
2008
/***************************************************
2009
* Magnetometer options
2010
**************************************************/
2011
/* A meta-define */
2012
#define RUN_REAL_MFAM GEO_TRUE
2013
2014
#if RUN_REAL_MFAM == GEO_TRUE
2015
#define MFAM_MODULE GEO_TRUE
2016
#define EMULATE_MFAM_SENSOR GEO_FALSE
2017
/* FID cycle is usually 1000, but it can be changed
2018
* to test unusual situations */
2019
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
2020
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
2021
#define GEO_MFAM_FULL_FILTER GEO_TRUE
2022
2023
#else
2024
/* In this case we're emulating */
2025
#define EMULATE_MFAM_SENSOR GEO_TRUE
2026
#define MFAM_MODULE GEO_FALSE
2027
/* FID cycle is usually 1000, but it can be changed
2028
* to test unusual situations */
2029
#define MFAM_EMULATOR_FID_CYCLE 1000
2030
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
2031
#define GEO_MFAM_FULL_FILTER GEO_TRUE
2032
#endif
2033
2034
#define EMULATE_862_SENSOR GEO_NOT_RELEVANT
2035
#define GEO_SERIAL_CESIUM_MAG GEO_NOT_RELEVANT
2036
#define COUNT_862_MAGS GEO_NOT_RELEVANT
2037
#define GEO_CM221_MAG_DATA GEO_NOT_RELEVANT
2038
2039
/********************************************************
2040
* Relating to file systems and storage
2041
*********************************************************/
2042
#define GEO_ALLOW_RUN_DISCONNECTED GEO_TRUE
2043
2044
/* A meta-define */
2045
#define USE_USB_STORAGE GEO_FALSE
2046
#define USE_SD_STORAGE GEO_TRUE
2047
#define GEO_USES_APP_CONFIG_FILES GEO_TRUE
2048
#define GEO_CONFIG_STORAGE "1:"
2049
#define GEO_LOG_STORAGE "1:"
2050
2051
2052
#if USE_USB_STORAGE == GEO_TRUE
2053
#define UNMIRRORED_STORAGE GEO_FALSE
2054
#define EMBEDDED_DATA_STORAGE GEO_TRUE
2055
#define GEO_SDCARD GEO_TRUE
2056
#define GEO_USB_STORAGE GEO_TRUE
2057
#define GEO_PRIMARY_STORAGE GEO_USB
2058
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
2059
#define GEO_LOG_FILES GEO_TRUE
2060
#define FILES_PER_DIRECTORY 200
2061
#define FILES_IN_DIRECTORIES GEO_TRUE
2062
#define SECONDS_PER_DATA_FILE (120)
2063
#define COUNT_862_MAGS 0
2064
#define GM_SIZE_OF_APP_DATA_QUEUE 1600
2065
#define COUNT_MFAM_BUFFERS 1500
2066
#define GEO_RAM_FILE_BUFFER_SIZE 0
2067
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
2068
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
2069
#endif
2070
2071
#elif USE_SD_STORAGE == GEO_TRUE
2072
#define UNMIRRORED_STORAGE GEO_FALSE
2073
#define EMBEDDED_DATA_STORAGE GEO_TRUE
2074
#define GEO_SDCARD GEO_TRUE
2075
#define GEO_USB_STORAGE GEO_TRUE
2076
#define GEO_PRIMARY_STORAGE GEO_SD
2077
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
2078
#define GEO_LOG_FILES GEO_TRUE
2079
#define FILES_PER_DIRECTORY 200
2080
#define FILES_IN_DIRECTORIES GEO_TRUE
2081
#define SECONDS_PER_DATA_FILE (60)
2082
#define GM_SIZE_OF_APP_DATA_QUEUE 1600
2083
#define COUNT_MFAM_BUFFERS 1500
2084
#define GEO_RAM_FILE_BUFFER_SIZE 0
2085
#define GEO_HARD_MAG_SUBSAMPLE 0
2086
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
2087
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
2088
#endif
2089
2090
#else
2091
#error not a valid choice for this application.
2092
#endif
2093
2094
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
2095
#define ALLOW_DELETE_SURVEYS GEO_TRUE
2096
2097
2098
/********************************************************
2099
* MQTT, WiFi, and network
2100
*********************************************************/
2101
#define LTE_TEST GEO_FALSE
2102
#define GEO_MQTT GEO_TRUE
2103
#if LTE_TEST == GEO_TRUE
2104
#define GEO_MQTT_SYNCH_REQUESTS GEO_TRUE
2105
//#define PASSKEY "94618894"
2106
//#define SSID_NAME "#Skyroam_v4u"
2107
#define GEO_MQTT_CONNECT_TO_BROKER GEO_TRUE
2108
#define GEO_WIFI_STATION_MODE GEO_TRUE
2109
#define GEO_DYNAMIC_WIFI_SSID GEO_FALSE
2110
2111
#else
2112
#define GEO_MQTT_SYNCH_REQUESTS GEO_FALSE
2113
#define GEO_WIFI_STATION_MODE GEO_FALSE
2114
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
2115
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
2116
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
2117
#define GEO_DYNAMIC_WIFI_SSID GEO_TRUE
2118
2119
2120
#endif
2121
/* Wifi or Ethernet? */
2122
#define GEO_NET_3100 GEO_TRUE
2123
2124
#define NUM_HTTP_DAEMONS 5
2125
#define NUM_MQTT_DAEMONS 2
2126
2127
/********************************************************
2128
* GPS and PPS
2129
*********************************************************/
2130
#define GPS_ENABLED GEO_TRUE
2131
2132
/***** Both normally true, but can be false for testing without PPS */
2133
#define GEO_PPS_EVENTS GEO_TRUE
2134
#define GEO_LOG_PPS_DATA GEO_TRUE
2135
#define GEO_864_PPS_LOCK GEO_FALSE
2136
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
2137
#define CHOOSE_PPS_DUTY_CYCLE GEO_TRUE
2138
2139
#if GPS_ENABLED == GEO_TRUE
2140
#define GEO_GPS_ADAFRUIT GEO_FALSE
2141
#define GEO_GPS_TALLYSMAN_5431 GEO_FALSE
2142
#if USE_LOKI_HARDWARE == GEO_TRUE
2143
#define GEO_GPS_ZEDF9P GEO_TRUE
2144
#define GEO_GPS_SIERRA_1110 GEO_FALSE
2145
#else
2146
#define GEO_GPS_SIERRA_1110 GEO_FALSE
2147
#define GEO_GPS_ZEDF9P GEO_TRUE
2148
#endif
2149
#endif
2150
2151
/**************** Other devices **************************/
2152
#if USE_LOKI_HARDWARE == GEO_TRUE
2153
#define LOKI_PICKLE_SWITCH GEO_TRUE
2154
#define LOKI_TWEETER GEO_TRUE
2155
#define GEO_SPEAKER_DAC GEO_TRUE
2156
#define GEO_SENSOR_LIGHT GEO_TRUE
2157
#define GEO_STORAGE_LIGHT GEO_TRUE
2158
#define GEO_PPS_LIGHT GEO_FALSE
2159
#define GEO_WIFI_LIGHT GEO_TRUE
2160
#define GEO_GPS_LIGHT GEO_TRUE
2161
#define GEO_POWER_INDICATOR_LIGHT GEO_TRUE
2162
#define GEO_INDICATORS GEO_TRUE
2163
#define GEO_INDICATORS_BLINKERS GEO_TRUE
2164
#define GEO_INDICATORS_SIREN GEO_TRUE
2165
#else
2166
#define GEO_INDICATORS GEO_FALSE
2167
#define GEO_INDICATORS_BLINKERS GEO_FALSE
2168
#define GEO_INDICATORS_SIREN GEO_FALSE
2169
#define LOKI_PICKLE_SWITCH GEO_FALSE
2170
#define LOKI_TWEETER GEO_FALSE
2171
#define GEO_SPEAKER_DAC GEO_FALSE
2172
#define GEO_SENSOR_LIGHT GEO_FALSE
2173
#define GEO_STORAGE_LIGHT GEO_FALSE
2174
#define GEO_PPS_LIGHT GEO_FALSE
2175
#define GEO_WIFI_LIGHT GEO_FALSE
2176
#define GEO_GPS_LIGHT GEO_FALSE
2177
#define GEO_POWER_INDICATOR_LIGHT GEO_FALSE
2178
#endif
2179
2180
#define GEO_I2C GEO_TRUE
2181
2182
/***********************************************************
2183
* Batteries
2184
************************************************************/
2185
#define BATTERY_50_PERCENT (11.1)
2186
#define BATTERY_20_PERCENT (10.5)
2187
#define BATTERY_5_PERCENT (10.0)
2188
2189
/********************************************************************************
2190
* Setting up sensor data types.
2191
* These are used to identify the use of particular sensors in this application,
2192
* The max number is used to set up the array "m_apsStorages", where it is
2193
* preferable, in order to save space, not to have unused items.
2194
* So, in this section, we try to make them contiguous.
2195
********************************************************************************/
2196
#define THIS_APP_MAG_DATA_TYPE 0
2197
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MAG_DATA_TYPE + 1)
2198
#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
2199
#define THIS_APP_APP_EVENTS (THIS_APP_PPS_EVENTS + 1)
2200
/* Used to define "m_apsStorages" */
2201
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
2202
2203
/**************************************************************************/
2204
/* Logging modes, indicating what the application should do with data.
2205
* The order of these doesn't matter, but the total number of them matters,
2206
* and they are used as indexes into "m_apsStorages" matters, so we
2207
* want to keep that array small if we can. These are never saved in any
2208
* DB, or transmitted over the network.
2209
**************************************************************************/
2210
#define GM_LOGGING_MODE_MONITOR_DATA (0)
2211
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
2212
#define GM_LOGGING_SAVE_DATA_TO_FILES_DISCONNECTED (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
2213
/* IGNORE_ALL is not used in setting up m_apsStorages */
2214
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES_DISCONNECTED + 1)
2215
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
2216
2217
/**************************************************************************
2218
* This number refers to the maximum number of storages that are
2219
* set up into "m_apsStorages". There may be additional storages for
2220
* other reasons, but that's what this one is about.
2221
* If this isn't set up correctly then m_apsStorages will blow up.
2222
**************************************************************************/
2223
#define GEO_MAX_APP_STORAGES (3)
// Maximum numnber of storages
2224
2225
/********************************************************
2226
* General application info. - name, versioning, etc.
2227
*********************************************************/
2228
#define GEO_SCHEMA_VERSION 8
2229
#error verify that this is the correct schema version
2232
#if BOARD_UNIFIED_03 == GEO_TRUE
2233
#define GEO_APP_NAME "Eagle"
2234
#define GEO_SSID "Eagle"
2235
#if USE_MAG_ARROW_HARDWARE == GEO_TRUE
2236
#define GEO_7993_BATTERY_MONITOR GEO_TRUE
2237
#define MFAM_SYS_MGMT GEO_TRUE
2238
#elif USE_LOKI_HARDWARE == GEO_TRUE
2239
#define GEO_7998_BATTERY_MONITOR GEO_TRUE
2240
#define MFAM_SYS_MGMT GEO_FALSE
2241
#endif
2242
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL|0x03
2243
#endif
2244
2245
/*********************************************************************/
2246
/* Binary header in every file. */
2247
/*********************************************************************/
2248
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
2249
2250
#define GEO_SINGLE_SURVEY GEO_FALSE
2251
#define GEO_FILE_SYNCH_EVENTS GEO_TRUE
2252
2253
/********************************************************
2254
* Queue and buffer sizes. These all need to be as large
2255
* as possible, while fitting into memory with each other.
2256
*********************************************************/
2257
#define GEO_LOAD_MFAM_SAMPLE_RATE_FROM_CONFIGS GEO_FALSE
2258
#define GEO_HARD_MAG_SUBSAMPLE_MQTT 200
2259
#define GEO_DYNAMIC_CFG_RECORDS_PER_FILE GEO_FALSE
2260
2261
2262
/***********************************************************
2263
* Relating to host if any
2264
**********************************************************/
2265
#define HOST_CONNECTED GEO_TRUE
2266
#define KNOWS_HOST_TIME GEO_TRUE
2267
2268
2269
#define DAEMON_MAXRECORD 3
2270
2271
#define GEO_TCP_STREAMING GEO_FALSE
2272
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
2273
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
2274
2275
#define GEO_LOG_PPS_DATA GEO_TRUE
2276
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
2277
#define GEO_AUTO_START_LOGGING GEO_FALSE
2278
#define GEO_LOKI_MONITOR_SUBSAMPLE 10
2279
2280
2281
#define EMU_1HZ_NOT
2282
2283
#define FILE_LOGGING_ALWAYS
2284
//#define GEO_TEXT_MODE_ONLY
2285
2286
#define SDSPI_BITRATE 12500000
2287
#define acs "ccs"
2288
#define accs
2289
#define aPART_TM4C1294NCPDT
2290
#define aTIVAWARE
2291
#define axdc_target_types__ ti/targets/std.h
2292
2293
/* Enable/Disable some test routines.
2294
If not testing that, then FALSE */
2295
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
2296
#define GEO_TEST_WIFI_TCPIP_THROUGHPUT GEO_FALSE
2297
2298
2299
#endif
2300
2301
/****************************************************************
2302
********************* KLoki - MagEx 1000Hz, not rover, *************
2303
*****************************************************************/
2304
#if GEO_APP_KLOKI == GEO_TRUE
2305
2306
#define GEO_APP_EMBEDDED_PROGRAM_NAME "KLoki"
2307
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "KLoki"
2308
#define HTTP_DOMAIN_NAME "kloki.net"
2309
2310
/********************************************************
2311
* General application info. - name, versioning, etc.
2312
*********************************************************/
2313
#define GEO_APP_MAJOR_VERSION "0"
2314
#define GEO_APP_MINOR_VERSION "1"
2315
#define GEO_SCHEMA_VERSION 8
2316
#error verify that this is the correct schema version
2317
#define GEO_APP_NAME "KLoki"
2318
#define GEO_SSID "Tezzeret"
2321
/********************************************************
2322
* Relating to boards and sensor hardware
2323
*********************************************************/
2324
/*** Primary elements **/
2325
#define BOARD_TIVA_LAUNCHPAD GEO_NOT_RELEVANT
2326
#define BOARD_PACTRON_1 GEO_NOT_RELEVANT
2327
#define BOARD_UNIFIED_03 GEO_TRUE
2328
2329
#define USE_MAG_ARROW_HARDWARE GEO_FALSE
2330
#define USE_LOKI_HARDWARE GEO_TRUE
2331
2332
/***************************************************
2333
* Magnetometer options
2334
**************************************************/
2335
/* A meta-define */
2336
#define RUN_REAL_MFAM GEO_TRUE
2337
2338
#if RUN_REAL_MFAM == GEO_TRUE
2339
#define MFAM_MODULE GEO_TRUE
2340
#define EMULATE_MFAM_SENSOR GEO_FALSE
2341
/* FID cycle is usually 1000, but it can be changed
2342
* to test unusual situations */
2343
#if EMULATE_MFAM_SENSOR == GEO_TRUE
2344
#define MFAM_EMULATOR_FID_CYCLE 1000
2345
#else
2346
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
2347
#endif
2348
#define GEO_WRITE_MFAM_BLOCKS GEO_TRUE
2349
#define GEO_MFAM_FULL_FILTER GEO_FALSE
2350
2351
#else
2352
/* In this case we're emulating */
2353
#define EMULATE_MFAM_SENSOR GEO_TRUE
2354
#define MFAM_MODULE GEO_FALSE
2355
/* FID cycle is usually 1000, but it can be changed
2356
* to test unusual situations */
2357
#define MFAM_EMULATOR_FID_CYCLE 1000
2358
#define GEO_WRITE_MFAM_BLOCKS GEO_TRUE
2359
#define GEO_MFAM_FULL_FILTER GEO_FALSE
2360
#endif
2361
2362
/********************************************************
2363
* Relating to file systems and storage
2364
*********************************************************/
2365
#define GEO_ALLOW_RUN_DISCONNECTED GEO_FALSE
2366
2367
/* A meta-define */
2368
#define USE_USB_STORAGE GEO_FALSE
2369
#define USE_SD_STORAGE GEO_TRUE
2370
2371
#if USE_USB_STORAGE == GEO_TRUE
2372
#define UNMIRRORED_STORAGE GEO_FALSE
2373
#define EMBEDDED_DATA_STORAGE GEO_TRUE
2374
#define GEO_SDCARD GEO_TRUE
2375
#define GEO_USB_STORAGE GEO_TRUE
2376
#define GEO_PRIMARY_STORAGE GEO_USB
2377
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
2378
#define GEO_LOG_FILES GEO_FALSE
2379
#define FILES_PER_DIRECTORY 200
2380
#define FILES_IN_DIRECTORIES GEO_TRUE
2381
#define SECONDS_PER_DATA_FILE (120)
2382
#define GM_SIZE_OF_APP_DATA_QUEUE 1600
2383
#define COUNT_MFAM_BUFFERS 1500
2384
#define GEO_RAM_FILE_BUFFER_SIZE GEO_NOT_RELEVANT
2385
#define GEO_HARD_MAG_SUBSAMPLE 0
2386
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
2387
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
2388
#endif
2389
2390
#elif USE_SD_STORAGE == GEO_TRUE
2391
#define UNMIRRORED_STORAGE GEO_FALSE
2392
#define EMBEDDED_DATA_STORAGE GEO_TRUE
2393
#define GEO_SDCARD GEO_TRUE
2394
#define GEO_USB_STORAGE GEO_TRUE
2395
#define GEO_PRIMARY_STORAGE GEO_SD
2396
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
2397
#define GEO_LOG_FILES GEO_TRUE
2398
#define FILES_PER_DIRECTORY 200
2399
#define FILES_IN_DIRECTORIES GEO_TRUE
2400
#define SECONDS_PER_DATA_FILE (5)
2401
#define GM_SIZE_OF_APP_DATA_QUEUE 2550
2402
#define COUNT_MFAM_BUFFERS 2500
2403
#define GEO_RAM_FILE_BUFFER_SIZE GEO_NOT_RELEVANT
2404
#define GEO_HARD_MAG_SUBSAMPLE 0
2405
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
2406
#define BLOCKS_PER_ACQUISITION_DATA_FILE 3000
2407
#endif
2408
2409
#else
2410
#error not a valid choice for this application.
2411
#endif
2412
2413
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
2414
#define ALLOW_DELETE_SURVEYS GEO_TRUE
2415
#define GEO_USES_APP_CONFIG_FILES GEO_TRUE
2416
#define GEO_CONFIG_STORAGE "1:"
2417
#define GEO_LOG_STORAGE "1:"
2418
2419
2420
/********************************************************
2421
* MQTT, WiFi, and network
2422
*********************************************************/
2423
#define LTE_TEST GEO_FALSE
2424
#define GEO_MQTT GEO_TRUE
2425
#if LTE_TEST == GEO_TRUE
2426
#define GEO_MQTT_SYNCH_REQUESTS GEO_TRUE
2427
#define GEO_MQTT_CONNECT_TO_BROKER GEO_TRUE
2428
#define GEO_WIFI_STATION_MODE GEO_TRUE
2429
#else
2430
#define GEO_MQTT_SYNCH_REQUESTS GEO_FALSE
2431
#define GEO_WIFI_STATION_MODE GEO_FALSE
2432
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
2433
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
2434
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
2435
#endif
2436
/* Wifi or Ethernet? */
2437
#define GEO_NET_3100 GEO_TRUE
2438
#define GEO_DYNAMIC_WIFI_SSID GEO_TRUE
2439
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
2440
2441
2442
#define NUM_HTTP_DAEMONS (5)
2443
#define NUM_MQTT_DAEMONS (2)
2444
2445
/********************************************************
2446
* GPS and PPS
2447
*********************************************************/
2448
#define GPS_ENABLED GEO_TRUE
2449
2450
/***** Both normally true, but can be false for testing without PPS */
2451
#define GEO_PPS_EVENTS GEO_TRUE
2452
#define CHOOSE_PPS_DUTY_CYCLE GEO_TRUE
2453
#define GEO_LOG_PPS_DATA GEO_TRUE
2454
#define GEO_864_PPS_LOCK GEO_FALSE
2455
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
2456
2457
#if GPS_ENABLED == GEO_TRUE
2458
#define GEO_GPS_ADAFRUIT GEO_FALSE
2459
#define GEO_GPS_TALLYSMAN_5431 GEO_FALSE
2460
#if USE_LOKI_HARDWARE == GEO_TRUE
2461
#define GEO_GPS_ZEDF9P GEO_TRUE
2462
#define GEO_GPS_SIERRA_1110 GEO_FALSE
2463
#else
2464
#define GEO_GPS_SIERRA_1110 GEO_TRUE
2465
#define GEO_GPS_ZEDF9P GEO_FALSE
2466
#endif
2467
#endif
2468
2469
/**************** Other devices **************************/
2470
#if USE_LOKI_HARDWARE == GEO_TRUE
2471
#define LOKI_PICKLE_SWITCH GEO_TRUE
2472
#define LOKI_TWEETER GEO_TRUE
2473
#define GEO_SPEAKER_DAC GEO_TRUE
2474
#define GEO_SENSOR_LIGHT GEO_TRUE
2475
#define GEO_STORAGE_LIGHT GEO_TRUE
2476
#define GEO_PPS_LIGHT GEO_FALSE
2477
#define GEO_WIFI_LIGHT GEO_TRUE
2478
#define GEO_GPS_LIGHT GEO_TRUE
2479
#define GEO_POWER_INDICATOR_LIGHT GEO_TRUE
2480
#define GEO_INDICATORS GEO_TRUE
2481
#define GEO_INDICATORS_BLINKERS GEO_TRUE
2482
#define GEO_INDICATORS_SIREN GEO_TRUE
2483
#else
2484
#define GEO_INDICATORS GEO_FALSE
2485
#define GEO_INDICATORS_BLINKERS GEO_FALSE
2486
#define GEO_INDICATORS_SIREN GEO_FALSE
2487
#define LOKI_PICKLE_SWITCH GEO_FALSE
2488
#define LOKI_TWEETER GEO_FALSE
2489
#define GEO_SPEAKER_DAC GEO_FALSE
2490
#define GEO_SENSOR_LIGHT GEO_FALSE
2491
#define GEO_STORAGE_LIGHT GEO_FALSE
2492
#define GEO_PPS_LIGHT GEO_FALSE
2493
#define GEO_WIFI_LIGHT GEO_FALSE
2494
#define GEO_GPS_LIGHT GEO_FALSE
2495
#define GEO_POWER_INDICATOR_LIGHT GEO_FALSE
2496
#endif
2497
2498
#define GEO_I2C GEO_TRUE
2499
2500
/***********************************************************
2501
* Batteries
2502
************************************************************/
2503
#define BATTERY_50_PERCENT (11.1)
2504
#define BATTERY_20_PERCENT (10.5)
2505
#define BATTERY_5_PERCENT (10.0)
2506
2507
/********************************************************************************
2508
* Setting up sensor data types.
2509
* These are used to identify the use of particular sensors in this application,
2510
* The max number is used to set up the array "m_apsStorages", where it is
2511
* preferable, in order to save space, not to have unused items.
2512
* So, in this section, we try to make them contiguous.
2513
********************************************************************************/
2514
#if GEO_WRITE_MFAM_BLOCKS == GEO_TRUE
2515
#define THIS_APP_MFAM_BLOCK_DATA_TYPE 0
2516
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MFAM_BLOCK_DATA_TYPE + 1)
2517
#else
2518
#define THIS_APP_MAG_DATA_TYPE 0
2519
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MAG_DATA_TYPE + 1)
2520
#endif
2521
2522
#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
2523
#define THIS_APP_APP_EVENTS (THIS_APP_PPS_EVENTS + 1)
2524
/* Used to define "m_apsStorages" */
2525
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
2526
2527
/**************************************************************************/
2528
/* Logging modes, indicating what the application should do with data.
2529
* The order of these doesn't matter, but the total number of them matters,
2530
* and they are used as indexes into "m_apsStorages" matters, so we
2531
* want to keep that array small if we can. These are never saved in any
2532
* DB, or transmitted over the network.
2533
**************************************************************************/
2534
#define GM_LOGGING_MODE_MONITOR_DATA (0)
2535
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
2536
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
2537
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
2538
2539
/**************************************************************************
2540
* This number refers to the maximum number of storages that are
2541
* set up into "m_apsStorages". There may be additional storages for
2542
* other reasons, but that's what this one is about.
2543
* If this isn't set up correctly then m_apsStorages will blow up.
2544
**************************************************************************/
2545
#define GEO_MAX_APP_STORAGES (3)
// Maximum numnber of storages
2546
2547
2548
/*********************************************************************/
2549
/* Binary header in every file. */
2550
/*********************************************************************/
2551
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
2552
2553
#define GEO_SINGLE_SURVEY GEO_FALSE
2554
#define GEO_FILE_SYNCH_EVENTS GEO_TRUE
2555
2556
/********************************************************
2557
* Queue and buffer sizes. These all need to be as large
2558
* as possible, while fitting into memory with each other.
2559
*********************************************************/
2560
#define GEO_LOAD_MFAM_SAMPLE_RATE_FROM_CONFIGS GEO_FALSE
2561
#define GEO_HARD_MAG_SUBSAMPLE_MQTT 200
2562
#define GEO_DYNAMIC_CFG_RECORDS_PER_FILE GEO_FALSE
2563
2564
2565
/***********************************************************
2566
* Relating to host if any
2567
**********************************************************/
2568
#define HOST_CONNECTED GEO_TRUE
2569
#define KNOWS_HOST_TIME GEO_TRUE
2570
2571
#define GEO_TCP_STREAMING GEO_FALSE
2572
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
2573
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
2574
2575
//#define GEO_LOKI_MONITOR_SUBSAMPLE 10
2576
2577
#define DAEMON_MAXRECORD 3
2578
2579
#define GEO_LOG_PPS_DATA GEO_TRUE
2580
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
2581
#define GEO_AUTO_START_LOGGING GEO_FALSE
2582
2583
#define EMU_1HZ_NOT
2584
2585
#define FILE_LOGGING_ALWAYS
2586
2587
2588
#if BOARD_UNIFIED_03 == GEO_TRUE
2589
#if USE_MAG_ARROW_HARDWARE == GEO_TRUE
2590
#define GEO_7993_BATTERY_MONITOR GEO_TRUE
2591
#define MFAM_SYS_MGMT GEO_TRUE
2592
#elif USE_LOKI_HARDWARE == GEO_TRUE
2593
#define GEO_7998_BATTERY_MONITOR GEO_TRUE
2594
#define MFAM_SYS_MGMT GEO_FALSE
2595
#endif
2596
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL|0x03
2597
#endif
2598
2599
2600
#define SDSPI_BITRATE 12500000
2601
#define acs "ccs"
2602
#define accs
2603
#define aPART_TM4C1294NCPDT
2604
#define aTIVAWARE
2605
#define axdc_target_types__ ti/targets/std.h
2606
2607
/* Enable/Disable some test routines.
2608
If not testing that, then FALSE */
2609
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
2610
#define GEO_TEST_WIFI_TCPIP_THROUGHPUT GEO_FALSE
2611
2612
/* Priorities */
2613
#define HTTP_DAEMON_PRIORITY 4
2614
#define MQTT_DAEMON_PRIORITY 4
2615
#define MAIN_TASK_STARTUP_PRIORITY
2616
#define MAIN_TASK_LOOP_PRIORITY
2617
#define WIFI_STARTUP_TASK_PRIORITY
2618
2619
#endif
2620
2621
2622
/****************************************************************
2623
********************* Acquarius - MagEx 1000Hz rover, ****************
2624
*****************************************************************/
2625
#if GEO_APP_AQUARIUS == GEO_TRUE
2626
2627
#define GEO_APP_EMBEDDED_PROGRAM_NAME "Aquarius"
2628
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "Aquarius"
2629
#define HTTP_DOMAIN_NAME "aquarius.net"
2630
2631
/********************************************************
2632
* Relating to boards and sensor hardware
2633
*********************************************************/
2634
/*** Primary elements **/
2635
#define BOARD_TIVA_LAUNCHPAD GEO_NOT_RELEVANT
2636
#define BOARD_PACTRON_1 GEO_NOT_RELEVANT
2637
#define BOARD_UNIFIED_03 GEO_TRUE
2638
2639
#define USE_MAG_ARROW_HARDWARE GEO_FALSE
2640
#define USE_LOKI_HARDWARE GEO_TRUE
2641
2642
/***************************************************
2643
* Magnetometer options
2644
**************************************************/
2645
/* A meta-define */
2646
#define RUN_REAL_MFAM GEO_TRUE
2647
2648
#if RUN_REAL_MFAM == GEO_TRUE
2649
#define MFAM_MODULE GEO_TRUE
2650
#define EMULATE_MFAM_SENSOR GEO_FALSE
2651
/* FID cycle is usually 1000, but it can be changed
2652
* to test unusual situations */
2653
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
2654
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
2655
#define GEO_MFAM_FULL_FILTER GEO_FALSE
2656
2657
#else
2658
/* In this case we're emulating */
2659
#define EMULATE_MFAM_SENSOR GEO_TRUE
2660
#define MFAM_MODULE GEO_FALSE
2661
/* FID cycle is usually 1000, but it can be changed
2662
* to test unusual situations */
2663
#define MFAM_EMULATOR_FID_CYCLE 1000
2664
#define GEO_WRITE_MFAM_BLOCKS GEO_TRUE
2665
#define GEO_MFAM_FULL_FILTER GEO_FALSE
2666
#endif
2667
2668
#define EMULATE_862_SENSOR GEO_NOT_RELEVANT
2669
#define GEO_SERIAL_CESIUM_MAG GEO_NOT_RELEVANT
2670
#define COUNT_862_MAGS GEO_NOT_RELEVANT
2671
#define GEO_CM221_MAG_DATA GEO_NOT_RELEVANT
2672
2673
2674
2675
2676
/********************************************************
2677
* Relating to file systems and storage
2678
*********************************************************/
2679
#define GEO_ALLOW_RUN_DISCONNECTED GEO_TRUE
2680
2681
/* A meta-define */
2682
#define USE_USB_STORAGE GEO_FALSE
2683
#define USE_SD_STORAGE GEO_TRUE
2684
2685
#if USE_USB_STORAGE == GEO_TRUE
2686
#define UNMIRRORED_STORAGE GEO_FALSE
2687
#define EMBEDDED_DATA_STORAGE GEO_TRUE
2688
#define GEO_SDCARD GEO_TRUE
2689
#define GEO_USB_STORAGE GEO_TRUE
2690
#define GEO_PRIMARY_STORAGE GEO_USB
2691
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
2692
#define GEO_LOG_FILES GEO_FALSE
2693
#define FILES_PER_DIRECTORY 200
2694
#define FILES_IN_DIRECTORIES GEO_TRUE
2695
#define SECONDS_PER_DATA_FILE (120)
2696
#define GM_SIZE_OF_APP_DATA_QUEUE 1600
2697
#define COUNT_MFAM_BUFFERS 1500
2698
#define GEO_RAM_FILE_BUFFER_SIZE GEO_NOT_RELEVANT
2699
#define GEO_HARD_MAG_SUBSAMPLE 0
2700
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
2701
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
2702
#endif
2703
2704
#elif USE_SD_STORAGE == GEO_TRUE
2705
#define UNMIRRORED_STORAGE GEO_FALSE
2706
#define EMBEDDED_DATA_STORAGE GEO_TRUE
2707
#define GEO_SDCARD GEO_TRUE
2708
#define GEO_USB_STORAGE GEO_TRUE
2709
#define GEO_PRIMARY_STORAGE GEO_SD
2710
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
2711
#define GEO_LOG_FILES GEO_TRUE
2712
#define FILES_PER_DIRECTORY 200
2713
#define FILES_IN_DIRECTORIES GEO_TRUE
2714
#define SECONDS_PER_DATA_FILE (120)
2715
#define GM_SIZE_OF_APP_DATA_QUEUE 2550
2716
#define COUNT_MFAM_BUFFERS 2500
2717
#define GEO_RAM_FILE_BUFFER_SIZE GEO_NOT_RELEVANT
2718
#define GEO_HARD_MAG_SUBSAMPLE 0
2719
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
2720
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200000
2721
#endif
2722
2723
#else
2724
#error not a valid choice for this application.
2725
#endif
2726
2727
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
2728
#define ALLOW_DELETE_SURVEYS GEO_TRUE
2729
2730
/********************************************************
2731
* MQTT, WiFi, and network
2732
*********************************************************/
2733
#define LTE_TEST GEO_FALSE
2734
#define GEO_MQTT GEO_TRUE
2735
#if LTE_TEST == GEO_TRUE
2736
#define GEO_MQTT_SYNCH_REQUESTS GEO_TRUE
2737
#define GEO_MQTT_CONNECT_TO_BROKER GEO_TRUE
2738
#define GEO_WIFI_STATION_MODE GEO_TRUE
2739
#else
2740
#define GEO_MQTT_SYNCH_REQUESTS GEO_FALSE
2741
#define GEO_WIFI_STATION_MODE GEO_FALSE
2742
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
2743
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
2744
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
2745
#endif
2746
/* Wifi or Ethernet? */
2747
#define GEO_NET_3100 GEO_TRUE
2748
2749
#define NUM_HTTP_DAEMONS (5)
2750
#define NUM_MQTT_DAEMONS (2)
2751
2752
/********************************************************
2753
* GPS and PPS
2754
*********************************************************/
2755
#define GPS_ENABLED GEO_TRUE
2756
2757
/***** Both normally true, but can be false for testing without PPS */
2758
#define GEO_PPS_EVENTS GEO_TRUE
2759
#define GEO_LOG_PPS_DATA GEO_TRUE
2760
#define GEO_864_PPS_LOCK GEO_FALSE
2761
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
2762
2763
#if GPS_ENABLED == GEO_TRUE
2764
#define GEO_GPS_ADAFRUIT GEO_FALSE
2765
#define GEO_GPS_TALLYSMAN_5431 GEO_FALSE
2766
#if USE_LOKI_HARDWARE == GEO_TRUE
2767
#define GEO_GPS_ZEDF9P GEO_TRUE
2768
#define GEO_GPS_SIERRA_1110 GEO_FALSE
2769
#else
2770
#define GEO_GPS_SIERRA_1110 GEO_TRUE
2771
#define GEO_GPS_ZEDF9P GEO_FALSE
2772
#endif
2773
#endif
2774
2775
/**************** Other devices **************************/
2776
#if USE_LOKI_HARDWARE == GEO_TRUE
2777
#define LOKI_PICKLE_SWITCH GEO_TRUE
2778
#define LOKI_TWEETER GEO_TRUE
2779
#define GEO_SPEAKER_DAC GEO_TRUE
2780
#define GEO_SENSOR_LIGHT GEO_TRUE
2781
#define GEO_STORAGE_LIGHT GEO_TRUE
2782
#define GEO_PPS_LIGHT GEO_FALSE
2783
#define GEO_WIFI_LIGHT GEO_TRUE
2784
#define GEO_GPS_LIGHT GEO_TRUE
2785
#define GEO_POWER_INDICATOR_LIGHT GEO_TRUE
2786
#define GEO_INDICATORS GEO_TRUE
2787
#define GEO_INDICATORS_BLINKERS GEO_TRUE
2788
#define GEO_INDICATORS_SIREN GEO_TRUE
2789
#else
2790
#define GEO_INDICATORS GEO_FALSE
2791
#define GEO_INDICATORS_BLINKERS GEO_FALSE
2792
#define GEO_INDICATORS_SIREN GEO_FALSE
2793
#define LOKI_PICKLE_SWITCH GEO_FALSE
2794
#define LOKI_TWEETER GEO_FALSE
2795
#define GEO_SPEAKER_DAC GEO_FALSE
2796
#define GEO_SENSOR_LIGHT GEO_FALSE
2797
#define GEO_STORAGE_LIGHT GEO_FALSE
2798
#define GEO_PPS_LIGHT GEO_FALSE
2799
#define GEO_WIFI_LIGHT GEO_FALSE
2800
#define GEO_GPS_LIGHT GEO_FALSE
2801
#define GEO_POWER_INDICATOR_LIGHT GEO_FALSE
2802
#endif
2803
2804
#define GEO_I2C GEO_TRUE
2805
2806
/***********************************************************
2807
* Batteries
2808
************************************************************/
2809
#define BATTERY_50_PERCENT (11.1)
2810
#define BATTERY_20_PERCENT (10.5)
2811
#define BATTERY_5_PERCENT (10.0)
2812
2813
/********************************************************************************
2814
* Setting up sensor data types.
2815
* These are used to identify the use of particular sensors in this application,
2816
* The max number is used to set up the array "m_apsStorages", where it is
2817
* preferable, in order to save space, not to have unused items.
2818
* So, in this section, we try to make them contiguous.
2819
********************************************************************************/
2820
#if GEO_WRITE_MFAM_BLOCKS == GEO_TRUE
2821
#define THIS_APP_MFAM_BLOCK_DATA_TYPE 0
2822
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MFAM_BLOCK_DATA_TYPE + 1)
2823
#else
2824
#define THIS_APP_MAG_DATA_TYPE 0
2825
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MAG_DATA_TYPE + 1)
2826
#endif
2827
2828
#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
2829
#define THIS_APP_APP_EVENTS (THIS_APP_PPS_EVENTS + 1)
2830
/* Used to define "m_apsStorages" */
2831
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
2832
2833
/**************************************************************************/
2834
/* Logging modes, indicating what the application should do with data.
2835
* The order of these doesn't matter, but the total number of them matters,
2836
* and they are used as indexes into "m_apsStorages" matters, so we
2837
* want to keep that array small if we can. These are never saved in any
2838
* DB, or transmitted over the network.
2839
**************************************************************************/
2840
#define GM_LOGGING_MODE_MONITOR_DATA (0)
2841
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
2842
#define GM_LOGGING_SAVE_DATA_TO_FILES_DISCONNECTED (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
2843
/* IGNORE_ALL is not used in setting up m_apsStorages */
2844
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES_DISCONNECTED + 1)
2845
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
2846
2847
/**************************************************************************
2848
* This number refers to the maximum number of storages that are
2849
* set up into "m_apsStorages". There may be additional storages for
2850
* other reasons, but that's what this one is about.
2851
* If this isn't set up correctly then m_apsStorages will blow up.
2852
**************************************************************************/
2853
#define GEO_MAX_APP_STORAGES (3)
// Maximum numnber of storages
2854
2855
/********************************************************
2856
* General application info. - name, versioning, etc.
2857
*********************************************************/
2858
#define GEO_APP_MAJOR_VERSION "0"
2859
#define GEO_APP_MINOR_VERSION "1"
2860
#define GEO_SCHEMA_VERSION 8
2861
#error verify that this is the correct schema version
2864
#if BOARD_UNIFIED_03 == GEO_TRUE
2865
#define GEO_APP_NAME "Aquarius"
2866
#define GEO_SSID "Tezzeret"
2867
#if USE_MAG_ARROW_HARDWARE == GEO_TRUE
2868
#define GEO_7993_BATTERY_MONITOR GEO_TRUE
2869
#define MFAM_SYS_MGMT GEO_TRUE
2870
#elif USE_LOKI_HARDWARE == GEO_TRUE
2871
#define GEO_7998_BATTERY_MONITOR GEO_TRUE
2872
#define MFAM_SYS_MGMT GEO_FALSE
2873
#endif
2874
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL|0x03
2875
#endif
2876
2877
/*********************************************************************/
2878
/* Binary header in every file. */
2879
/*********************************************************************/
2880
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
2881
2882
#define GEO_SINGLE_SURVEY GEO_FALSE
2883
#define GEO_FILE_SYNCH_EVENTS GEO_TRUE
2884
2885
/********************************************************
2886
* Queue and buffer sizes. These all need to be as large
2887
* as possible, while fitting into memory with each other.
2888
*********************************************************/
2889
#define GEO_LOAD_MFAM_SAMPLE_RATE_FROM_CONFIGS GEO_FALSE
2890
#define GEO_HARD_MAG_SUBSAMPLE_MQTT 200
2891
#define GEO_DYNAMIC_CFG_RECORDS_PER_FILE GEO_FALSE
2892
2893
2894
/***********************************************************
2895
* Relating to host if any
2896
**********************************************************/
2897
#define HOST_CONNECTED GEO_TRUE
2898
#define KNOWS_HOST_TIME GEO_TRUE
2899
2900
#define GEO_TCP_STREAMING GEO_FALSE
2901
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
2902
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
2903
2904
//#define GEO_LOKI_MONITOR_SUBSAMPLE 10
2905
2906
#define DAEMON_MAXRECORD 3
2907
2908
#define GEO_LOG_PPS_DATA GEO_TRUE
2909
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
2910
#define GEO_AUTO_START_LOGGING GEO_FALSE
2911
2912
#define EMU_1HZ_NOT
2913
2914
#define FILE_LOGGING_ALWAYS
2915
2916
2917
#define SDSPI_BITRATE 12500000
2918
#define acs "ccs"
2919
#define accs
2920
#define aPART_TM4C1294NCPDT
2921
#define aTIVAWARE
2922
#define axdc_target_types__ ti/targets/std.h
2923
2924
/* Enable/Disable some test routines.
2925
If not testing that, then FALSE */
2926
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
2927
#define GEO_TEST_WIFI_TCPIP_THROUGHPUT GEO_FALSE
2928
2929
2930
#endif
2931
2932
#if GEO_SURVEY_MANAGER == GEO_TRUE
2933
#define GEO_APP_EMBEDDED_PROGRAM_NAME "NONE"
2934
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "NONE"
2935
2936
2937
/*** Primary elements **/
2938
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
2939
#define BOARD_PACTRON_1 GEO_FALSE
2940
#define BOARD_UNIFIED_03 GEO_TRUE
2941
2942
#define EMULATE_MFAM_SENSOR GEO_FALSE
2943
#define EMULATE_862_SENSOR GEO_FALSE
2944
#define MFAM_MODULE GEO_FALSE
2945
#define GEO_SERIAL_CESIUM_MAG GEO_TRUE
2946
2947
#define GEO_SDCARD GEO_FALSE
2948
#define GEO_USB_STORAGE GEO_FALSE
2949
#define GEO_PRIMARY_STORAGE GEO_USB
2950
2951
#define GPS_ENABLED GEO_FALSE
2952
#define GEO_MQTT GEO_FALSE
2953
#define GEO_PPS_EVENTS GEO_FALSE
2954
2955
#define NUM_MQTT_DAEMONS 0
2956
2957
#if GPS_ENABLED == GEO_TRUE
2958
#define GEO_GPS_ADAFRUIT GEO_FALSE
2959
#define GEO_GPS_TALLYSMAN_5431 GEO_TRUE
2960
#define GEO_GPS_SIERRA_1110 GEO_FALSE
2961
#endif
2962
2963
#define GEO_864_PPS_LOCK GEO_FALSE
2964
#define GEO_I2C GEO_FALSE
2965
2966
2967
/* Wifi or Ethernet? */
2968
#define GEO_NET_3100 GEO_FALSE
2969
#define NUM_HTTP_DAEMONS 0
2970
2973
#if BOARD_TIVA_LAUNCHPAD == GEO_TRUE
2974
#define GEO_APP_NAME "Geometrics G864-LP"
2975
#define GEO_SSID "Tezzeret-LP-728"
2976
#endif
2977
#if BOARD_PACTRON_1 == GEO_TRUE
2978
#define GEO_APP_NAME "Geometrics G864-PB"
2979
#define GEO_SSID "Tezzeret-PB"
2980
#endif
2981
#if BOARD_UNIFIED_03 == GEO_TRUE
2982
#define GEO_APP_NAME "Geometrics G864-3"
2983
#define GEO_SSID "Tezzeret"
2984
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL|0x03
2985
2986
#endif
2987
2988
/*********************************************************************/
2989
/* In order to debug the 864, sometimes we want to have text files */
2990
/* rather than the binary files expected by the Android client. */
2991
/* When debugging in this fashion, using a browser use GEO_TRUE */
2992
/* Use GEO_FALSE for using the Android app. */
2993
/*********************************************************************/
2994
#define GEO_864_DEBUG_TEXT_FILES GEO_FALSE
2995
#if GEO_864_DEBUG_TEXT_FILES == GEO_TRUE
2996
#define GEO_WRITE_TEXT_FILE_HEADERS GEO_TRUE
2997
#else
2998
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
2999
#endif
3000
#define GEO_APP_MAJOR_VERSION "0"
3001
#define GEO_APP_MINOR_VERSION "1"
3002
#define GEO_CM221_MAG_DATA GEO_TRUE
3003
// Single survey true only for testing.
3004
#define GEO_SINGLE_SURVEY GEO_TRUE
3005
#define GEO_FILE_SYNCH_EVENTS GEO_TRUE
3006
3007
#if EMULATE_862_SENSOR == GEO_TRUE
3008
#define EMULATE_862_RATE 10
3009
#endif
3010
3011
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
3012
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200000
3013
#endif
3014
#if (GEO_SERIAL_CESIUM_MAG == GEO_TRUE) || (EMULATE_862_SENSOR == GEO_TRUE)
3015
#define BLOCKS_PER_ACQUISITION_DATA_FILE 50
3016
#endif
3017
3018
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
3019
#define COUNT_MFAM_BUFFERS 2500
3020
#define COUNT_862_MAGS 0
3021
#define GM_SIZE_OF_APP_DATA_QUEUE 2950
3022
#elif GEO_SERIAL_CESIUM_MAG == GEO_TRUE
3023
#define COUNT_MFAM_BUFFERS 0
3024
#define COUNT_862_MAGS 400
3025
#define GM_SIZE_OF_APP_DATA_QUEUE 500
3026
#elif EMULATE_862_SENSOR == GEO_TRUE
3027
#define COUNT_MFAM_BUFFERS 0
3028
#define COUNT_862_MAGS 400
3029
#define GM_SIZE_OF_APP_DATA_QUEUE 500
3030
#else
3031
#define COUNT_MFAM_BUFFERS 0
3032
#define COUNT_862_MAGS 0
3033
#define GM_SIZE_OF_APP_DATA_QUEUE 100
3034
#endif
3035
#define GEO_TCP_STREAMING GEO_FALSE
3036
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
3037
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
3038
#define ALLOW_DELETE_SURVEYS GEO_TRUE
3039
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
3040
3041
#define GEO_LOG_PPS_DATA GEO_TRUE
3042
#define GEO_TEN_HERTZ_FROM_PPS GEO_TRUE
3043
#define GEO_AUTO_START_LOGGING GEO_FALSE
3044
#define GEO_HARD_MAG_SUBSAMPLE 500
3045
3046
#define GEO_WIFI_STATION_MODE GEO_FALSE
3047
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
3048
3049
3050
3051
#define EMU_1HZ_NOT
3052
3053
#define FILE_LOGGING_ALWAYS
3054
//#define GEO_TEXT_MODE_ONLY
3055
3056
#define SDSPI_BITRATE 12500000
3057
//#define acs "ccs"
3058
//#define accs
3059
#define aPART_TM4C1294NCPDT
3060
#define aTIVAWARE
3061
#define axdc_target_types__ ti/targets/std.h
3062
3063
/* Enable/Disable some test routines.
3064
If not testing that, then FALSE */
3065
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
3066
#define GEO_TEST_WIFI_TCPIP_THROUGHPUT GEO_FALSE
3067
3068
3069
#endif
3070
3071
/***********************************************************************/
3072
/***********************************************************************/
3073
/* Mag Arrow - Wifi enabled, HTTP and files, but not MQQT. */
3074
/***********************************************************************/
3075
/***********************************************************************/
3076
#if GEO_APP_MAG_ARROW == GEO_TRUE
3077
#define GEO_APP_EMBEDDED_PROGRAM_NAME "MAGARROW"
3078
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "MagArrow"
3079
#define HTTP_DOMAIN_NAME "magarrow.net"
3080
3081
/****** Relating to boards and sensor hardware ******/
3082
/*** Primary elements **/
3083
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
3084
#define BOARD_PACTRON_1 GEO_FALSE
3085
#define BOARD_UNIFIED_03 GEO_TRUE
3086
3087
/******* General application info. - name, versioning, etc. **/
3088
#define GEO_APP_MAJOR_VERSION "3"
3089
#define GEO_APP_MINOR_VERSION "0"
3090
3091
/* Set Schema to work with old or new versions of the system. */
3092
#define GEO_SCHEMA_VERSION 8
3093
3094
#if BOARD_TIVA_LAUNCHPAD == GEO_TRUE
3095
#define GEO_APP_NAME "Geometrics MagArrow"
3096
#define GEO_SSID "Tezzeret-LP-728"
3097
#endif
3098
#if BOARD_PACTRON_1 == GEO_TRUE
3099
#define GEO_APP_NAME "Geometrics MagArrow"
3100
#define GEO_SSID "Tezzeret-PB"
3101
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_PACTRON | 0x01
3102
#endif
3103
#if BOARD_UNIFIED_03 == GEO_TRUE
3104
#define USE_MAG_ARROW_HARDWARE GEO_TRUE
3105
#define GEO_APP_NAME "Geometrics MagArrow"
3106
#define GEO_SSID "MagArrowOne"
3107
#define MFAM_SYS_MGMT GEO_TRUE
3108
#define MAG_ARROW_LIGHTS GEO_TRUE
3109
#define GEO_7993_BATTERY_MONITOR GEO_TRUE
3110
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_MAGARROW|0x03
3111
#endif
3112
3113
/*********** Setup mag sensors **********************/
3114
#define MFAM_MODULE GEO_TRUE
3115
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
3116
#define EMULATE_MFAM_SENSOR GEO_FALSE
3117
#define MFAM_EMULATOR_FID_CYCLE 1000
3118
#define GEO_SERIAL_CESIUM_MAG GEO_NOT_RELEVANT
3119
#define GEO_HARD_MAG_SUBSAMPLE 0
3120
3121
3122
/************** File systems and storage **********/
3123
#define UNMIRRORED_STORAGE GEO_FALSE
3124
#define EMBEDDED_DATA_STORAGE GEO_TRUE
3125
#define GEO_SDCARD GEO_TRUE
3126
#define GEO_USB_STORAGE GEO_TRUE
3127
#define GEO_PRIMARY_STORAGE GEO_SD
3128
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
3129
#define GEO_LOG_FILES GEO_TRUE
3130
3131
#define FILES_PER_DIRECTORY 40
3132
#define FILES_IN_DIRECTORIES GEO_TRUE
3133
3134
#define GEO_USES_APP_CONFIG_FILES GEO_TRUE
3135
#define GEO_CONFIG_STORAGE "1:"
3136
#define GEO_LOG_STORAGE "1:"
3137
3138
/********************************************************
3139
* MQTT, WiFi, and network
3140
*********************************************************/
3141
#define NETWORK_TRACE GEO_FALSE
3142
#define GEO_MQTT GEO_FALSE
3143
#define GEO_MQTT_SYNCH_REQUESTS GEO_FALSE
3144
#define GEO_WIFI_STATION_MODE GEO_FALSE
3145
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
3146
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
3147
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
3148
3149
/* Wifi or Ethernet? */
3150
#define GEO_NET_3100 GEO_TRUE
3151
#define GEO_DYNAMIC_WIFI_SSID GEO_TRUE
3152
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
3153
3154
#define NUM_HTTP_DAEMONS 5
3155
#define NUM_MQTT_DAEMONS 0
3156
#define DAEMON_MAXRECORD 3
3157
3158
3159
/********************************************************
3160
* GPS and PPS
3161
*********************************************************/
3162
#define GPS_ENABLED GEO_TRUE
3163
#define GEO_PPS_EVENTS GEO_TRUE
3164
#define CHOOSE_PPS_DUTY_CYCLE GEO_TRUE
3165
#define GEO_LOG_PPS_DATA GEO_TRUE
3166
3167
#if GPS_ENABLED == GEO_TRUE
3168
#define GEO_GPS_ADAFRUIT GEO_FALSE
3169
#define GEO_GPS_TALLYSMAN_5431 GEO_FALSE
3170
#define GEO_GPS_SIERRA_1110 GEO_TRUE
3171
#endif
3172
3173
#define GEO_I2C GEO_TRUE
3174
3175
/********************************************************************************
3176
* Setting up sensor data types.
3177
* These are used to identify the use of particular sensors in this application,
3178
* The max number is used to set up the array "m_apsStorages", where it is
3179
* preferable, in order to save space, not to have unused items.
3180
* So, in this section, we try to make them contiguous.
3181
********************************************************************************/
3182
#define THIS_APP_MFAM_BLOCK_DATA_TYPE 0
3183
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MFAM_BLOCK_DATA_TYPE + 1)
3184
#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
3185
#define THIS_APP_APP_EVENTS (THIS_APP_PPS_EVENTS + 1)
3186
/* Used to define "m_apsStorages" */
3187
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
3188
//#define THIS_APP_MFAM_BLOCK_DATA_TYPE 6
3189
3190
/**************************************************************************/
3191
/* Logging modes, indicating what the application should do with data.
3192
* The order of these doesn't matter, but the total number of them matters,
3193
* and they are used as indexes into "m_apsStorages" matters, so we
3194
* want to keep that array small if we can. These are never saved in any
3195
* DB, or transmitted over the network.
3196
**************************************************************************/
3197
#define GM_LOGGING_MODE_MONITOR_DATA (0)
3198
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
3199
/* IGNORE_ALL is not used in setting up m_apsStorages */
3200
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
3201
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
3202
3203
/**************************************************************************
3204
* This number refers to the maximum number of storages that are
3205
* set up into "m_apsStorages". There may be additional storages for
3206
* other reasons, but that's what this one is about.
3207
* If this isn't set up correctly then m_apsStorages will blow up.
3208
**************************************************************************/
3209
#define GEO_MAX_APP_STORAGES (3)
// Maximum numnber of storages:
3210
/* files and monitor */
3211
3212
#define GEO_FILE_SYNCH_EVENTS GEO_FALSE
3213
3214
/******************************************************
3215
* Some details about mag data
3216
******************************************************/
3217
#define GEO_MAGARROW_TEXT_FILES GEO_FALSE
3218
#if GEO_MAGARROW_TEXT_FILES == GEO_TRUE
3219
#define GEO_WRITE_TEXT_FILE_HEADERS GEO_TRUE
3220
#else
3221
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
3222
#endif
3223
#define GEO_WRITE_MFAM_BLOCKS GEO_TRUE
3224
3225
/********************************************************
3226
* Queue and buffer sizes. These all need to be as large
3227
* as possible, while fitting into memory with each other.
3228
*********************************************************/
3229
#define GM_SIZE_OF_APP_DATA_QUEUE 2550
3230
#define GM_MFAM_TEXT_LONG_FORMAT GEO_TRUE
3231
#define COUNT_MFAM_BUFFERS 2500
3232
#define MFAM_FRAMES GEO_FALSE
3233
#define ALLOW_DELETE_SURVEYS GEO_TRUE
3234
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
3235
3236
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
3237
#define BLOCKS_PER_ACQUISITION_DATA_FILE 20000
3238
#endif
3239
3240
3241
#define GEO_TCP_STREAMING GEO_FALSE
3242
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
3243
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
3244
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
3245
#define GEO_SINGLE_SURVEY GEO_TRUE
3246
#define EMU_1HZ_NOT
3247
3248
/******************************************************
3249
* Other sensors and indicators */
3250
#define GEO_INDICATORS GEO_FALSE
3251
#define GEO_INDICATORS_BLINKERS GEO_FALSE
3252
#define GEO_INDICATORS_SIREN GEO_FALSE
3253
#define GEO_SENSOR_LIGHT GEO_FALSE
3254
#define GEO_STORAGE_LIGHT GEO_FALSE
3255
#define GEO_PPS_LIGHT GEO_FALSE
3256
#define GEO_GPS_LIGHT GEO_FALSE
3257
/*******************************************************/
3258
3259
3260
/********************************************************
3261
* Miscellaneous leftovers
3262
*********************************************************/
3263
#define FILE_LOGGING_ALWAYS
3264
//#define GEO_TEXT_MODE_ONLY
3265
#define SDSPI_BITRATE 12500000
3266
#define acs "ccs"
3267
#define accs
3268
#define aPART_TM4C1294NCPDT
3269
#define aTIVAWARE
3270
#define GEO_TEST_STORAGEa
3271
#define axdc_target_types__ ti/targets/std.h
3272
3273
/* Enable/Disable some test routines. If not testing that, then FALSE */
3274
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
3275
3276
/* Priorities */
3277
#define HTTP_DAEMON_PRIORITY 4
3278
#define MAIN_TASK_STARTUP_PRIORITY
3279
#define MAIN_TASK_LOOP_PRIORITY
3280
#define WIFI_STARTUP_TASK_PRIORITY 9
3281
#define SYS_MGMT_TASK_PRIORITY 1
3282
#define GEO_STANDARD_UART_TASK_PRIORITY 8
3283
/* Maybe used to be 5? */
3284
#define WIFI_DAEMON_TASK_PRIORITY 10
3285
//#define MQTT_DAEMON_PRIORITY 4
3286
3287
#endif
3288
3289
/***********************************************************************/
3290
/***********************************************************************/
3291
/********** TCP Streamer . *****************************************/
3292
/***********************************************************************/
3293
/***********************************************************************/
3294
#if GEO_APP_TCP_STREAMER == GEO_TRUE
3295
3296
#define GEO_APP_EMBEDDED_PROGRAM_NAME "TCPSTREAMER"
3297
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "Wired Mag Streamer"
3298
#define HTTP_DOMAIN_NAME "streamer.net"
3299
3300
/*** Primary elements **/
3301
#define BOARD_TIVA_LAUNCHPAD GEO_TRUE
3302
#define BOARD_PACTRON_1 GEO_FALSE
3303
#define BOARD_UNIFIED_03 GEO_FALSE
3304
3305
#define GEO_HARD_MAG_SUBSAMPLE 0
3306
3307
#define EMULATE_MFAM_SENSOR GEO_FALSE
3308
#define MFAM_MODULE GEO_TRUE
3309
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
3310
#define GEO_SERIAL_CESIUM_MAG GEO_FALSE
3311
3312
/* A meta-define */
3313
#define USE_USB_STORAGE GEO_FALSE
3314
3315
#if USE_USB_STORAGE == GEO_TRUE
3316
#define GEO_SDCARD GEO_FALSE
3317
#define GEO_USB_STORAGE GEO_TRUE
3318
#define GEO_PRIMARY_STORAGE GEO_USB
3319
#define UNMIRRORED_STORAGE GEO_FALSE
3320
#define EMBEDDED_DATA_STORAGE GEO_TRUE
3321
#define GEO_CACHE_LAST_FILE_INDEX GEO_TRUE
3322
#define GEO_LOG_FILES GEO_TRUE
3323
#define FILES_PER_DIRECTORY 200
3324
#define FILES_IN_DIRECTORIES GEO_TRUE
3325
#define SECONDS_PER_DATA_FILE (5)
3326
#else
3327
#define UNMIRRORED_STORAGE GEO_FALSE
3328
#define EMBEDDED_DATA_STORAGE GEO_FALSE
3329
#define GEO_SDCARD GEO_FALSE
3330
#define GEO_USB_STORAGE GEO_TRUE
3331
//#define GEO_CACHE_LAST_FILE_INDEX GEO_FALSE
3332
#define GEO_LOG_FILES GEO_TRUE
3333
#define SECONDS_PER_DATA_FILE (1)
3334
#endif
3335
3336
#define GPS_ENABLED GEO_FALSE
3337
#if GPS_ENABLED == GEO_TRUE
3338
#define GEO_GPS_ADAFRUIT GEO_FALSE
3339
#define GEO_GPS_TALLYSMAN_5431 GEO_TRUE
3340
#define GEO_GPS_SIERRA_1110 GEO_FALSE
3341
#endif
3342
3343
#define GEO_INDICATORS GEO_FALSE
3344
#define GEO_SENSOR_LIGHT GEO_FALSE
3345
#define GEO_STORAGE_LIGHT GEO_FALSE
3346
#define GEO_PPS_LIGHT GEO_FALSE
3347
#define GEO_GPS_LIGHT GEO_FALSE
3348
3349
#define GEO_864_PPS_LOCK GEO_FALSE
3350
3351
3352
/* Network: Wifi or Ethernet? */
3353
#define GEO_NET_3100 GEO_FALSE
3354
#define GEO_NET_NDK GEO_TRUE
3355
3356
#define STATIC_ETHERNET_ADDRESS_DEF GEO_TRUE
3357
3358
#define GEO_MQTT GEO_FALSE
3359
#define GEO_PPS_EVENTS GEO_FALSE
3360
#define GEO_FILE_SYNCH_EVENTS GEO_FALSE
3361
#define DAEMON_MAXRECORD 3
3362
#define NUM_HTTP_DAEMONS 4
3363
#define NUM_TCP_DAEMONS 2
3364
#define NUM_MQTT_DAEMONS 0
3365
3366
#define COM_STAT_SIZE 16
3367
#define THIS_APP_MAG_DATA_TYPE 0
3368
#define THIS_APP_APP_EVENTS 1
3369
#define THIS_APP_MFAM_BLOCK_DATA_TYPE 2
3370
#define GEO_MAX_APP_SENSORS (THIS_APP_MFAM_BLOCK_DATA_TYPE + 1)
3371
3372
#define GEO_I2C GEO_FALSE
3373
#define GEO_WIFI_STATION_MODE GEO_FALSE
3374
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
3375
#define GEO_SCHEMA_VERSION 5
3376
#error verify that this is the correct schema version
3377
3380
#define GEO_MAGARROW_TEXT_FILES GEO_FALSE
3381
#if GEO_MAGARROW_TEXT_FILES == GEO_TRUE
3382
#define GEO_WRITE_TEXT_FILE_HEADERS GEO_TRUE
3383
#else
3384
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
3385
#endif
3386
3387
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
3388
3389
#define GEO_APP_MAJOR_VERSION "0"
3390
#define GM_SIZE_OF_APP_DATA_QUEUE 2550
3391
#define GM_MFAM_TEXT_LONG_FORMAT GEO_TRUE
3392
#define COUNT_MFAM_BUFFERS 1000
3393
#define MFAM_FRAMES GEO_FALSE
3394
#define ALLOW_DELETE_SURVEYS GEO_FALSE
3395
#define ALLOW_DELETE_DATA_FILES GEO_FALSE
3396
#define GEO_APP_MINOR_VERSION "4"
3397
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
3398
#define COUNT_862_MAGS 400
3399
#else
3400
#define COUNT_862_MAGS 0
3401
#endif
3402
3403
3404
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
3405
#define BLOCKS_PER_ACQUISITION_DATA_FILE 10000
3406
#endif
3407
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
3408
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
3409
#endif
3410
3411
#define GM_LOGGING_MODE_MONITOR_DATA (0)
3412
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
3413
/* IGNORE_ALL is not used in setting up m_apsStorages */
3414
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
3415
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
3416
3417
/**************************************************************************
3418
* This number refers to the maximum number of storages that are
3419
* set up into "m_apsStorages". There may be additional storages for
3420
* other reasons, but that's what this one is about.
3421
* If this isn't set up correctly then m_apsStorages will blow up.
3422
**************************************************************************/
3423
#define GEO_MAX_APP_STORAGES (2)
// Maximum numnber of storages
3424
3425
3426
3427
3428
#define GEO_TCP_STREAMING GEO_TRUE
3429
#define GEO_TCP_STREAMING_PORT 1000
3430
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
3431
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
3432
#define GEO_LOG_PPS_DATA GEO_FALSE
3433
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
3434
#define GEO_SINGLE_SURVEY GEO_FALSE
3435
#define EMU_1HZ_NOT
3436
3437
3438
#if BOARD_TIVA_LAUNCHPAD == GEO_TRUE
3439
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_TIVA_LAUNCHPAD
3440
#define GEO_APP_NAME "Geometrics Marine MFAM-1"
3441
#define GEO_SSID "Tezzeret-LP-728"
3442
#endif
3443
#if BOARD_PACTRON_1 == GEO_TRUE
3444
#define GEO_APP_NAME "Geometrics MagArrow"
3445
#define GEO_SSID "Tezzeret-PB"
3446
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_PACTRON | 0x01
3447
#endif
3448
#if BOARD_UNIFIED_03 == GEO_TRUE
3449
#define GEO_APP_NAME "Geometrics TCP MagStreamer"
3450
#define GEO_SSID "MagArrowOne"
3451
#define MFAM_SYS_MGMT GEO_FALSE
3452
#define GEO_4151_BATTERY_MONITOR GEO_FALSE
3453
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_MAGARROW|0x03
3454
#endif
3455
3456
#define GEO_STATIC_NETWORK_PROVISIONED GEO_FALSE
3457
3458
#define FILE_LOGGING_ALWAYS GEO_TRUE
3459
//#define GEO_TEXT_MODE_ONLY
3460
#define SDSPI_BITRATE 12500000
3461
#define acs "ccs"
3462
#define accs
3463
#define aPART_TM4C1294NCPDT
3464
#define aTIVAWARE
3465
#define GEO_TEST_STORAGEa
3466
#define axdc_target_types__ ti/targets/std.h
3467
3468
/* Enable/Disable some test routines. If not testing that, then FALSE */
3469
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
3470
3471
#endif
3472
3473
/*********** Dev kit streamer *******************/
3474
#if GEO_APP_PACTRON_DEV_KIT_STREAMER == GEO_TRUE
3475
/************************************************/
3476
3477
#define GEO_APP_EMBEDDED_PROGRAM_NAME "DK-STREAMER"
3478
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "DK-STREAMER"
3479
#define HTTP_DOMAIN_NAME "devstream.net"
3480
3481
/*** Primary elements **/
3482
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
3483
#define BOARD_PACTRON_1 GEO_TRUE
3484
#define BOARD_UNIFIED_03 GEO_FALSE
3485
3486
/**** Magnetometer definitions ************/
3487
#define MFAM_MODULE GEO_TRUE
3488
#define EMULATE_MFAM_SENSOR GEO_FALSE
3489
3490
#define MFAM_EMULATOR_FID_CYCLE 1000
3491
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
3492
#define GEO_SERIAL_CESIUM_MAG GEO_NOT_RELEVANT
3493
3494
#define GEO_HARD_MAG_SUBSAMPLE 0
3495
3496
/************* Files and storage **************/
3497
3498
#define EMBEDDED_DATA_STORAGE GEO_FALSE
3499
#define UNMIRRORED_STORAGE GEO_FALSE
3500
3501
#define FILES_IN_DIRECTORIES GEO_NOT_RELEVANT
3502
#define GEO_SDCARD GEO_TRUE
3503
#define GEO_USB_STORAGE GEO_FALSE
3504
#define GEO_PRIMARY_STORAGE GEO_SD
3505
#define GEO_USES_APP_CONFIG_FILES GEO_TRUE
3506
#define GEO_CONFIG_STORAGE "0:"
3507
#define GEO_LOG_STORAGE "0:"
3508
//#define GEO_CACHE_LAST_FILE_INDEX GEO_FALSE
3509
#define GEO_LOG_FILES GEO_TRUE
3510
#define GEO_MAX_APP_STORAGES (3)
3511
3512
#define GPS_ENABLED GEO_FALSE
3513
#if GPS_ENABLED == GEO_TRUE
3514
#define GEO_GPS_ADAFRUIT GEO_FALSE
3515
#define GEO_GPS_TALLYSMAN_5431 GEO_TRUE
3516
#define GEO_GPS_SIERRA_1110 GEO_FALSE
3517
#endif
3518
3519
#define GEO_I2C GEO_FALSE
3520
#define GEO_SCHEMA_VERSION 8
3521
3522
#define GEO_SENSOR_LIGHT GEO_FALSE
3523
#define GEO_STORAGE_LIGHT GEO_FALSE
3524
#define GEO_PPS_LIGHT GEO_FALSE
3525
#define GEO_GPS_LIGHT GEO_FALSE
3526
3527
#define GEO_864_PPS_LOCK GEO_FALSE
3528
3529
/********* Network ***************/
3530
#define GEO_1588 GEO_FALSE
3531
3532
/* Wifi or Ethernet? */
3533
#define GEO_NET_3100 GEO_FALSE
3534
#define GEO_MQTT GEO_FALSE
3535
#define GEO_PPS_EVENTS GEO_FALSE
3536
#define GEO_FILE_SYNCH_EVENTS GEO_FALSE
3537
#define DAEMON_MAXRECORD 3
3538
#define NUM_HTTP_DAEMONS 4
3539
#define NUM_TCP_DAEMONS 2
3540
#define NUM_MQTT_DAEMONS 0
3541
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
3542
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
3543
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
3544
#define GEO_WIFI_STATION_MODE GEO_FALSE
3545
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
3546
#define GEO_NETWORK_DONT_CLOSE_ON_SEND_TIMEOUTS GEO_TRUE
3547
3548
3549
3550
#if GEO_NET_3100 == GEO_TRUE
3551
#define GEO_CONFIG_STATIC_IP GEO_FALSE
3552
#else
3553
#define GEO_CONFIG_STATIC_IP GEO_FALSE
3554
#endif
3555
3556
#define GEO_DEVICE_NICKNAME GEO_TRUE
3557
3560
#define GEO_MAGARROW_TEXT_FILES GEO_FALSE
3561
#if GEO_MAGARROW_TEXT_FILES == GEO_TRUE
3562
#define GEO_WRITE_TEXT_FILE_HEADERS GEO_TRUE
3563
#else
3564
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
3565
#endif
3566
3567
#define GM_LOGGING_MODE_MONITOR_DATA (0)
3568
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
3569
/* IGNORE_ALL is not used in setting up m_apsStorages */
3570
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
3571
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
3572
3573
//#define THIS_APP_MAG_DATA_TYPE 0
3574
#define THIS_APP_MFAM_BLOCK_DATA_TYPE 0
3575
//#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MFAM_BLOCK_DATA_TYPE + 1)
3576
//#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
3577
#define THIS_APP_APP_EVENTS (THIS_APP_MFAM_BLOCK_DATA_TYPE + 1)
3578
/* Used to define "m_apsStorages" */
3579
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
3580
//#define THIS_APP_MFAM_BLOCK_DATA_TYPE 6
3581
3582
3583
3584
#define GEO_WRITE_MFAM_BLOCKS GEO_TRUE
3585
3586
#define GEO_APP_MAJOR_VERSION "1"
3587
#define GM_SIZE_OF_APP_DATA_QUEUE 2100
3588
#define GM_MFAM_TEXT_LONG_FORMAT GEO_TRUE
3589
#define COUNT_MFAM_BUFFERS 2000
3590
#define MFAM_FRAMES GEO_FALSE
3591
#define ALLOW_DELETE_SURVEYS GEO_FALSE
3592
#define ALLOW_DELETE_DATA_FILES GEO_FALSE
3593
#define GEO_APP_MINOR_VERSION "0"
3594
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
3595
#define COUNT_862_MAGS 400
3596
#else
3597
#define COUNT_862_MAGS 0
3598
#endif
3599
3600
3601
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
3602
#define BLOCKS_PER_ACQUISITION_DATA_FILE 10000
3603
#endif
3604
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
3605
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
3606
#endif
3607
3608
#define GEO_TCP_STREAMING GEO_TRUE
3609
#define GEO_STREAMING_BLOCK GEO_TRUE
3610
#define GEO_TCP_STREAMING_PORT 1000
3611
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
3612
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
3613
#define GEO_LOG_PPS_DATA GEO_FALSE
3614
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
3615
#define GEO_SINGLE_SURVEY GEO_FALSE
3616
#define EMU_1HZ_NOT
3617
3618
3619
#define GEO_DEFAULT_WEB_PAGE "status.htm"
3620
3621
/*********** Network configuration and debugging ******************/
3622
#define NETWORK_TRACE GEO_TRUE
3623
3624
#if BOARD_PACTRON_1 == GEO_TRUE
3625
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_PACTRON | 0x01
3626
#if GEO_NET_3100 == GEO_TRUE
3627
#define GEO_DYNAMIC_WIFI_SSID GEO_TRUE
3628
#define GEO_APP_NAME "Geometrics DevKit WiFi Streamer"
3629
#define GEO_SSID "Tezzeret-PB"
3630
#define GEO_CONFIG_STATIC_IP GEO_FALSE
3631
#else
3632
#if GEO_CONFIG_STATIC_IP == GEO_TRUE
3633
#define GEO_APP_NAME "MFAM DevKit StaticIP Streamer"
3634
#define GEO_SSID "Tezzeret-PB"
3635
#else
3636
#define GEO_APP_NAME "Geometrics DevKit DHCP Streamer"
3637
#define GEO_SSID "Tezzeret-PB"
3638
#endif
3639
#endif
3640
#else
3641
#error This application is designed for the pactron dev kit.
3642
#endif
3643
3644
#define GEO_STATIC_NETWORK_PROVISIONED GEO_FALSE
3645
3646
#define FILE_LOGGING_ALWAYS GEO_TRUE
3647
//#define GEO_TEXT_MODE_ONLY
3648
#define SDSPI_BITRATE 12500000
3649
#define acs "ccs"
3650
#define accs
3651
#define aPART_TM4C1294NCPDT
3652
#define aTIVAWARE
3653
#define GEO_TEST_STORAGEa
3654
#define axdc_target_types__ ti/targets/std.h
3655
3656
/* Enable/Disable some test routines. If not testing that, then FALSE */
3657
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
3658
3659
/* Priorities */
3660
#define HTTP_DAEMON_PRIORITY 4
3661
#define MQTT_DAEMON_PRIORITY 4
3662
#define MAIN_TASK_STARTUP_PRIORITY
3663
#define MAIN_TASK_LOOP_PRIORITY
3664
#define WIFI_STARTUP_TASK_PRIORITY 9
3665
#define SYS_MGMT_TASK_PRIORITY 1
3666
#define GEO_STANDARD_UART_TASK_PRIORITY 8
3667
#define WIFI_DAEMON_TASK_PRIORITY 10
3668
3669
3670
#endif
3671
3672
3673
/*********** Simple ethernet streamer *******************/
3674
#if GEO_APP_DOLPHIN == GEO_TRUE
3675
/************************************************/
3676
3677
#define GEO_APP_EMBEDDED_PROGRAM_NAME "DOLPHIN"
3678
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "DOLPHIN"
3679
#define HTTP_DOMAIN_NAME "dolphin.net"
3680
3681
/*** Primary elements **/
3682
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
3683
#define BOARD_PACTRON_1 GEO_FALSE
3684
#define BOARD_UNIFIED_03 GEO_FALSE
3685
#define BOARD_1292NCPDT_UNIFIED GEO_TRUE
3686
3687
/**** Magnetometer definitions ************/
3688
#define MFAM_MODULE GEO_TRUE
3689
#define EMULATE_MFAM_SENSOR GEO_FALSE
3690
3691
#define MFAM_EMULATOR_FID_CYCLE 1000
3692
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
3693
#define GEO_SERIAL_CESIUM_MAG GEO_NOT_RELEVANT
3694
#define GEO_HARD_MAG_SUBSAMPLE 0
3695
#define GEO_MFAM_FULL_FILTER GEO_TRUE
3696
3697
3698
/************* Files and storage **************/
3699
#define EMBEDDED_DATA_STORAGE GEO_FALSE
3700
#define UNMIRRORED_STORAGE GEO_FALSE
3701
3702
#define FILES_IN_DIRECTORIES GEO_NOT_RELEVANT
3703
3704
#if BOARD_1292NCPDT_UNIFIED == GEO_TRUE
3705
#define GEO_SDCARD GEO_FALSE
3706
#define GEO_USB_STORAGE GEO_FALSE
3707
#define GEO_PRIMARY_STORAGE GEO_SD
3708
#define GEO_USES_APP_CONFIG_FILES GEO_FALSE
3709
#define GEO_CONFIG_STORAGE "0:"
3710
#define GEO_LOG_STORAGE "0:"
3711
#define GEO_LOG_FILES GEO_FALSE
3712
#else
3713
#define GEO_SDCARD GEO_TRUE
3714
#define GEO_USB_STORAGE GEO_FALSE
3715
#define GEO_PRIMARY_STORAGE GEO_SD
3716
#define GEO_USES_APP_CONFIG_FILES GEO_TRUE
3717
#define GEO_CONFIG_STORAGE "0:"
3718
#define GEO_LOG_STORAGE "0:"
3719
#define GEO_LOG_FILES GEO_TRUE
3720
#endif
3721
#define GEO_MAX_APP_STORAGES (3)
3722
3723
#define GPS_ENABLED GEO_FALSE
3724
#if GPS_ENABLED == GEO_TRUE
3725
#define GEO_GPS_ADAFRUIT GEO_FALSE
3726
#define GEO_GPS_TALLYSMAN_5431 GEO_TRUE
3727
#define GEO_GPS_SIERRA_1110 GEO_FALSE
3728
#endif
3729
3730
#define GEO_I2C GEO_FALSE
3731
#define GEO_SCHEMA_VERSION 8
3732
3733
#define GEO_SENSOR_LIGHT GEO_FALSE
3734
#define GEO_STORAGE_LIGHT GEO_FALSE
3735
#define GEO_PPS_LIGHT GEO_FALSE
3736
#define GEO_GPS_LIGHT GEO_FALSE
3737
3738
#define GEO_864_PPS_LOCK GEO_FALSE
3739
3740
/********* Network ***************/
3741
#define GEO_1588 GEO_FALSE
3742
#define GEO_MDNS_SD GEO_FALSE
3743
#if GEO_MDNS_SD == GEO_TRUE
3744
#define GEO_MDNS_SD_SERVICE_NAME "_dolphin._tcp.local"
3745
#define GEO_MDNS_SD_SERVICE_HOST_NAME "dolphin"
3746
#define GEO_MDNS_SD_SERVICE_PORT 400
3747
#endif
3748
3749
/* Wifi or Ethernet? */
3750
#define GEO_NET_3100 GEO_FALSE
3751
#define GEO_MQTT GEO_FALSE
3752
#define GEO_PPS_EVENTS GEO_FALSE
3753
#define GEO_FILE_SYNCH_EVENTS GEO_FALSE
3754
3755
3756
#define NUM_TCP_DAEMONS 2
3757
3758
/* This is really number of children, not daemons */
3759
#define NUM_HTTP_DAEMONS (3)
3760
#define NUM_MQTT_DAEMONS (0)
3761
3762
#define REAL_HTTP_DAEMONS (1)
3763
#define REAL_MQTT_DAEMONS (0)
3764
#define REAL_TCP_DAEMONS (2)
3765
3766
#if GEO_MDNS_SD == GEO_TRUE
3767
#define REAL_MDNS_DAEMONS (1)
3768
#else
3769
#define REAL_MDNS_DAEMONS (0)
3770
#endif
3771
3772
#if GEO_1588 == GEO_TRUE
3773
#define REAL_1588_DAEMONS (1)
3774
#else
3775
#define REAL_1588_DAEMONS (0)
3776
#endif
3777
3778
#define DAEMON_MAXRECORD (REAL_HTTP_DAEMONS+REAL_MQTT_DAEMONS+REAL_MDNS_DAEMONS+REAL_1588_DAEMONS+REAL_TCP_DAEMONS)
3779
3780
3781
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
3782
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
3783
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
3784
#define GEO_WIFI_STATION_MODE GEO_FALSE
3785
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
3786
#define GEO_NETWORK_DONT_CLOSE_ON_SEND_TIMEOUTS GEO_TRUE
3787
3788
#if GEO_NET_3100 == GEO_TRUE
3789
#define GEO_CONFIG_STATIC_IP GEO_FALSE
3790
#else
3791
#define GEO_CONFIG_STATIC_IP GEO_FALSE
3792
#endif
3793
3794
#define GEO_DEVICE_NICKNAME GEO_TRUE
3797
#define GEO_MAGARROW_TEXT_FILES GEO_FALSE
3798
#if GEO_MAGARROW_TEXT_FILES == GEO_TRUE
3799
#define GEO_WRITE_TEXT_FILE_HEADERS GEO_TRUE
3800
#else
3801
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
3802
#endif
3803
3804
#define GM_LOGGING_MODE_MONITOR_DATA (0)
3805
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
3806
/* IGNORE_ALL is not used in setting up m_apsStorages */
3807
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
3808
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
3809
3810
#define THIS_APP_MAG_DATA_TYPE 0
3811
//#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MFAM_BLOCK_DATA_TYPE + 1)
3812
//#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
3813
#define THIS_APP_APP_EVENTS (THIS_APP_MAG_DATA_TYPE + 1)
3814
/* Used to define "m_apsStorages" */
3815
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
3816
//#define THIS_APP_MFAM_BLOCK_DATA_TYPE 6
3817
3818
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
3819
3820
#define GEO_APP_MAJOR_VERSION "0"
3821
#define GM_SIZE_OF_APP_DATA_QUEUE 2100
3822
#define GM_MFAM_TEXT_LONG_FORMAT GEO_TRUE
3823
#define COUNT_MFAM_BUFFERS 2000
3824
#define MFAM_FRAMES GEO_FALSE
3825
#define ALLOW_DELETE_SURVEYS GEO_FALSE
3826
#define ALLOW_DELETE_DATA_FILES GEO_FALSE
3827
#define GEO_APP_MINOR_VERSION "0"
3828
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
3829
#define COUNT_862_MAGS 400
3830
#else
3831
#define COUNT_862_MAGS 0
3832
#endif
3833
3834
3835
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
3836
#define BLOCKS_PER_ACQUISITION_DATA_FILE 10000
3837
#endif
3838
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
3839
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
3840
#endif
3841
3842
#define GEO_TCP_STREAMING GEO_TRUE
3843
#define GEO_TCP_STREAMING_PORT 1000
3844
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
3845
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
3846
#define GEO_LOG_PPS_DATA GEO_FALSE
3847
#define GEO_TEN_HERTZ_FROM_PPS GEO_NOT_RELEVANT
3848
#define GEO_SINGLE_SURVEY GEO_FALSE
3849
#define EMU_1HZ_NOT
3850
3851
#define GEO_DEFAULT_WEB_PAGE "status.htm"
3852
3853
/*********** Network configuration and debugging ******************/
3854
#define NETWORK_TRACE GEO_TRUE
3855
3856
#if BOARD_PACTRON_1 == GEO_TRUE
3857
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_PACTRON | 0x01
3858
#if GEO_NET_3100 == GEO_TRUE
3859
#define GEO_DYNAMIC_WIFI_SSID GEO_TRUE
3860
#define GEO_APP_NAME "Dolphin WiFi Streamer"
3861
#define GEO_SSID "Dolphin"
3862
#define GEO_CONFIG_STATIC_IP GEO_FALSE
3863
#else
3864
#if GEO_CONFIG_STATIC_IP == GEO_TRUE
3865
#define GEO_APP_NAME "Dolphin StaticIP Streamer"
3866
#define GEO_SSID "DolphinStatic"
3867
#else
3868
#define GEO_APP_NAME "Dolphin DHCP Streamer"
3869
#define GEO_SSID "DolphinDHCP"
3870
#endif
3871
#endif
3872
#elif BOARD_1292NCPDT_UNIFIED == GEO_TRUE
3873
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_1292NCPDT
3874
#if GEO_NET_3100 == GEO_TRUE
3875
#define GEO_DYNAMIC_WIFI_SSID GEO_TRUE
3876
#define GEO_APP_NAME "Dolphin WiFi Streamer"
3877
#define GEO_SSID "Dolphin"
3878
#define GEO_CONFIG_STATIC_IP GEO_FALSE
3879
#else
3880
#if GEO_CONFIG_STATIC_IP == GEO_TRUE
3881
#define GEO_APP_NAME "Dolphin StaticIP Streamer"
3882
#define GEO_SSID "DolphinStatic"
3883
#else
3884
#define GEO_APP_NAME "Dolphin DHCP Streamer"
3885
#define GEO_SSID "DolphinDHCP"
3886
#endif
3887
#endif
3888
#else
3889
#error This application is designed for the pactron dev kit.
3890
#endif
3891
3892
#define GEO_STATIC_NETWORK_PROVISIONED GEO_FALSE
3893
3894
#define FILE_LOGGING_ALWAYS GEO_TRUE
3895
//#define GEO_TEXT_MODE_ONLY
3896
#define SDSPI_BITRATE 12500000
3897
#define acs "ccs"
3898
#define accs
3899
#define aPART_TM4C1294NCPDT
3900
#define aTIVAWARE
3901
#define GEO_TEST_STORAGEa
3902
#define axdc_target_types__ ti/targets/std.h
3903
3904
/* Enable/Disable some test routines. If not testing that, then FALSE */
3905
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
3906
3907
/* Priorities */
3908
#define HTTP_DAEMON_PRIORITY 4
3909
#define MQTT_DAEMON_PRIORITY 4
3910
#define MAIN_TASK_STARTUP_PRIORITY
3911
#define MAIN_TASK_LOOP_PRIORITY
3912
#define WIFI_STARTUP_TASK_PRIORITY 9
3913
#define SYS_MGMT_TASK_PRIORITY 1
3914
#define GEO_STANDARD_UART_TASK_PRIORITY 8
3915
#define WIFI_DAEMON_TASK_PRIORITY 10
3916
3917
#endif
3918
3919
/************************************************/
3920
/*********** Example application *******************/
3921
/* MFAM emulator, monitor storage only.
3922
* Ethernet web pages. */
3923
#if GEO_APP_EXAMPLE == GEO_TRUE
3924
/************************************************/
3925
/************************************************/
3926
3927
#define GEO_APP_EMBEDDED_PROGRAM_NAME "Example"
3928
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "Example"
3929
#define HTTP_DOMAIN_NAME "tzxmpl.net"
3930
3931
/*** Primary elements **/
3932
#define BOARD_TIVA_LAUNCHPAD GEO_TRUE
3933
#define BOARD_PACTRON_1 GEO_NOT_RELEVANT
3934
#define BOARD_UNIFIED_03 GEO_NOT_RELEVANT
3935
3936
/**** Magnetometer definitions ************/
3937
#define MFAM_MODULE GEO_FALSE
3938
#define EMULATE_MFAM_SENSOR GEO_TRUE
3939
3940
#define MFAM_EMULATOR_FID_CYCLE 1000
3941
#define MFAM_WAIT_FOR_QUIET_SPI GEO_NOT_RELEVANT
3942
#define GEO_SERIAL_CESIUM_MAG GEO_NOT_RELEVANT
3943
3944
#define GEO_HARD_MAG_SUBSAMPLE 0
3945
3946
/************* Files and storage **************/
3947
3948
#define EMBEDDED_DATA_STORAGE GEO_FALSE
3949
#define UNMIRRORED_STORAGE GEO_FALSE
3950
3951
#define FILES_IN_DIRECTORIES GEO_NOT_RELEVANT
3952
#define GEO_SDCARD GEO_FALSE
3953
#define GEO_USB_STORAGE GEO_FALSE
3954
#define GEO_PRIMARY_STORAGE GEO_SD
3955
#define GEO_USES_APP_CONFIG_FILES GEO_FALSE
3956
#define GEO_CONFIG_STORAGE "0:"
3957
#define GEO_LOG_STORAGE "0:"
3958
//#define GEO_CACHE_LAST_FILE_INDEX GEO_FALSE
3959
#define GEO_LOG_FILES GEO_FALSE
3960
3961
/* Monitor and TCP are the storages */
3962
#define GEO_MAX_APP_STORAGES (2)
3963
3964
#define GPS_ENABLED GEO_FALSE
3965
#if GPS_ENABLED == GEO_TRUE
3966
#define GEO_GPS_ADAFRUIT GEO_FALSE
3967
#define GEO_GPS_TALLYSMAN_5431 GEO_TRUE
3968
#define GEO_GPS_SIERRA_1110 GEO_FALSE
3969
#endif
3970
3971
#define GEO_I2C GEO_FALSE
3972
#define GEO_SCHEMA_VERSION 8
3973
3974
#define GEO_SENSOR_LIGHT GEO_FALSE
3975
#define GEO_STORAGE_LIGHT GEO_FALSE
3976
#define GEO_PPS_LIGHT GEO_FALSE
3977
#define GEO_GPS_LIGHT GEO_FALSE
3978
3979
#define GEO_864_PPS_LOCK GEO_FALSE
3980
3981
/********* Network ***************/
3982
#define GEO_1588 GEO_FALSE
3983
3984
/* Wifi or Ethernet? If not Wifi (3100), then ethernet. */
3985
#define GEO_NET_3100 GEO_FALSE
3986
#define GEO_MQTT GEO_FALSE
3987
#define GEO_PPS_EVENTS GEO_FALSE
3988
#define GEO_FILE_SYNCH_EVENTS GEO_FALSE
3989
3990
/* One daemon for TCP, one daemon for utility */
3991
#define NUM_TCP_DAEMONS 1
3992
3993
/* This is really number of children (accepted
3994
* sockets, not listen sockets */
3995
#define NUM_HTTP_DAEMONS (2)
3996
#define NUM_MQTT_DAEMONS (0)
3997
3998
/* Actual network daemons (listen sockets */
3999
#define REAL_HTTP_DAEMONS (1)
4000
#define REAL_MQTT_DAEMONS (0)
4001
4002
/* Include the utility daemon for ethernet */
4003
#define REAL_TCP_DAEMONS (2)
4004
4005
#define DAEMON_MAXRECORD (REAL_HTTP_DAEMONS+REAL_TCP_DAEMONS)
4006
4007
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
4008
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
4009
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
4010
#define GEO_WIFI_STATION_MODE GEO_FALSE
4011
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
4012
#define GEO_NETWORK_DONT_CLOSE_ON_SEND_TIMEOUTS GEO_TRUE
4013
4014
/* This is a DHCP application */
4015
#define GEO_CONFIG_STATIC_IP GEO_FALSE
4016
4017
#define GEO_DEVICE_NICKNAME GEO_TRUE
4018
4021
#define GEO_MAGARROW_TEXT_FILES GEO_FALSE
4022
#if GEO_MAGARROW_TEXT_FILES == GEO_TRUE
4023
#define GEO_WRITE_TEXT_FILE_HEADERS GEO_TRUE
4024
#else
4025
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
4026
#endif
4027
4028
#define GM_LOGGING_MODE_MONITOR_DATA (0)
4029
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_MODE_MONITOR_DATA + 1)
4030
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
4031
4032
/* Define the event/sensor IDs that will be used in this application. These
4033
* are the IDs that are queued into the main event queue.
4034
*/
4035
#define THIS_APP_MFAM_BLOCK_DATA_TYPE 0
4036
#define THIS_APP_APP_EVENTS (THIS_APP_MFAM_BLOCK_DATA_TYPE + 1)
4037
/* Used to define "m_apsStorages" */
4038
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
4039
4040
#define GEO_WRITE_MFAM_BLOCKS GEO_TRUE
4041
4042
#define GEO_APP_MAJOR_VERSION "1"
4043
#define GM_SIZE_OF_APP_DATA_QUEUE 2100
4044
#define GM_MFAM_TEXT_LONG_FORMAT GEO_TRUE
4045
#define COUNT_MFAM_BUFFERS 2000
4046
#define MFAM_FRAMES GEO_NOT_RELEVANT
4047
#define ALLOW_DELETE_SURVEYS GEO_NOT_RELEVANT
4048
#define ALLOW_DELETE_DATA_FILES GEO_NOT_RELEVANT
4049
#define GEO_APP_MINOR_VERSION "0"
4050
4051
/* Not relevant for this application */
4052
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
4053
#define BLOCKS_PER_ACQUISITION_DATA_FILE 10000
4054
#endif
4055
4056
#define GEO_TCP_STREAMING GEO_TRUE
4057
#define GEO_STREAMING_BLOCK GEO_TRUE
4058
#define GEO_TCP_STREAMING_PORT 1000
4059
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_NOT_RELEVANT
4060
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
4061
#define GEO_LOG_PPS_DATA GEO_NOT_RELEVANT
4062
#define GEO_TEN_HERTZ_FROM_PPS GEO_NOT_RELEVANT
4063
#define GEO_SINGLE_SURVEY GEO_NOT_RELEVANT
4064
#define EMU_1HZ_NOT
4065
4066
4067
#define GEO_DEFAULT_WEB_PAGE "status.htm"
4068
4069
/*********** Network configuration and debugging ******************/
4070
#define NETWORK_TRACE GEO_FALSE
4071
4072
#if BOARD_TIVA_LAUNCHPAD == GEO_TRUE
4073
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_TIVA_LAUNCHPAD
4074
#if GEO_NET_3100 == GEO_TRUE
4075
#error This application is not for WiFi
4076
#else
4077
#if GEO_CONFIG_STATIC_IP == GEO_TRUE
4078
#define GEO_APP_NAME "Simple Tezzeret Static IP Example"
4079
#define GEO_SSID "Tezzeret-PB"
4080
#else
4081
#define GEO_APP_NAME "Simple Tezzeret DHCP Example"
4082
#define GEO_SSID "Tezzeret-PB"
4083
#endif
4084
#endif
4085
#else
4086
#error This application is designed for the Tiva launchpad only.
4087
#endif
4088
4089
#define GEO_STATIC_NETWORK_PROVISIONED GEO_FALSE
4090
4091
#define FILE_LOGGING_ALWAYS GEO_NOT_RELEVANT
4092
//#define GEO_TEXT_MODE_ONLY
4093
#define SDSPI_BITRATE 12500000
4094
#define acs "ccs"
4095
#define accs
4096
#define aPART_TM4C1294NCPDT
4097
#define aTIVAWARE
4098
#define GEO_TEST_STORAGEa
4099
#define axdc_target_types__ ti/targets/std.h
4100
4101
/* Enable/Disable some test routines. If not testing that, then FALSE */
4102
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
4103
4104
/* Priorities */
4105
#define HTTP_DAEMON_PRIORITY 4
4106
//#define MQTT_DAEMON_PRIORITY 4
4107
#define MAIN_TASK_STARTUP_PRIORITY
4108
#define MAIN_TASK_LOOP_PRIORITY
4109
//#define WIFI_STARTUP_TASK_PRIORITY 9
4110
//#define SYS_MGMT_TASK_PRIORITY 1
4111
//#define GEO_STANDARD_UART_TASK_PRIORITY 8
4112
//#define WIFI_DAEMON_TASK_PRIORITY 10
4113
4114
4115
#endif
4116
4117
4118
/*********** Simple ethernet streamer *******************/
4119
#if GEO_APP_DOLPHIN == GEO_TRUE
4120
/************************************************/
4121
4122
#define GEO_APP_EMBEDDED_PROGRAM_NAME "DOLPHIN"
4123
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "DOLPHIN"
4124
#define HTTP_DOMAIN_NAME "dolphin.net"
4125
4126
/*** Primary elements **/
4127
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
4128
#define BOARD_PACTRON_1 GEO_FALSE
4129
#define BOARD_UNIFIED_03 GEO_FALSE
4130
#define BOARD_1292NCPDT_UNIFIED GEO_TRUE
4131
4132
/**** Magnetometer definitions ************/
4133
#define MFAM_MODULE GEO_TRUE
4134
#define EMULATE_MFAM_SENSOR GEO_FALSE
4135
4136
#define MFAM_EMULATOR_FID_CYCLE 1000
4137
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
4138
#define GEO_SERIAL_CESIUM_MAG GEO_NOT_RELEVANT
4139
#define GEO_HARD_MAG_SUBSAMPLE 0
4140
#define GEO_MFAM_FULL_FILTER GEO_TRUE
4141
4142
4143
/************* Files and storage **************/
4144
#define EMBEDDED_DATA_STORAGE GEO_FALSE
4145
#define UNMIRRORED_STORAGE GEO_FALSE
4146
4147
#define FILES_IN_DIRECTORIES GEO_NOT_RELEVANT
4148
4149
#if BOARD_1292NCPDT_UNIFIED == GEO_TRUE
4150
#define GEO_SDCARD GEO_FALSE
4151
#define GEO_USB_STORAGE GEO_FALSE
4152
#define GEO_PRIMARY_STORAGE GEO_SD
4153
#define GEO_USES_APP_CONFIG_FILES GEO_FALSE
4154
#define GEO_CONFIG_STORAGE "0:"
4155
#define GEO_LOG_STORAGE "0:"
4156
#define GEO_LOG_FILES GEO_FALSE
4157
#else
4158
#define GEO_SDCARD GEO_TRUE
4159
#define GEO_USB_STORAGE GEO_FALSE
4160
#define GEO_PRIMARY_STORAGE GEO_SD
4161
#define GEO_USES_APP_CONFIG_FILES GEO_TRUE
4162
#define GEO_CONFIG_STORAGE "0:"
4163
#define GEO_LOG_STORAGE "0:"
4164
#define GEO_LOG_FILES GEO_TRUE
4165
#endif
4166
#define GEO_MAX_APP_STORAGES (3)
4167
4168
#define GPS_ENABLED GEO_FALSE
4169
#if GPS_ENABLED == GEO_TRUE
4170
#define GEO_GPS_ADAFRUIT GEO_FALSE
4171
#define GEO_GPS_TALLYSMAN_5431 GEO_TRUE
4172
#define GEO_GPS_SIERRA_1110 GEO_FALSE
4173
#endif
4174
4175
#define GEO_I2C GEO_FALSE
4176
#define GEO_SCHEMA_VERSION 8
4177
4178
#define GEO_SENSOR_LIGHT GEO_FALSE
4179
#define GEO_STORAGE_LIGHT GEO_FALSE
4180
#define GEO_PPS_LIGHT GEO_FALSE
4181
#define GEO_GPS_LIGHT GEO_FALSE
4182
4183
#define GEO_864_PPS_LOCK GEO_FALSE
4184
4185
/********* Network ***************/
4186
#define GEO_1588 GEO_FALSE
4187
#define GEO_MDNS_SD GEO_FALSE
4188
#if GEO_MDNS_SD == GEO_TRUE
4189
#define GEO_MDNS_SD_SERVICE_NAME "_dolphin._tcp.local"
4190
#define GEO_MDNS_SD_SERVICE_HOST_NAME "dolphin"
4191
#define GEO_MDNS_SD_SERVICE_PORT 400
4192
#endif
4193
4194
/* Wifi or Ethernet? */
4195
#define GEO_NET_3100 GEO_FALSE
4196
#define GEO_MQTT GEO_FALSE
4197
#define GEO_PPS_EVENTS GEO_FALSE
4198
#define GEO_FILE_SYNCH_EVENTS GEO_FALSE
4199
4200
4201
#define NUM_TCP_DAEMONS 2
4202
4203
/* This is really number of children, not daemons */
4204
#define NUM_HTTP_DAEMONS (3)
4205
#define NUM_MQTT_DAEMONS (0)
4206
4207
#define REAL_HTTP_DAEMONS (1)
4208
#define REAL_MQTT_DAEMONS (0)
4209
#define REAL_TCP_DAEMONS (2)
4210
4211
#if GEO_MDNS_SD == GEO_TRUE
4212
#define REAL_MDNS_DAEMONS (1)
4213
#else
4214
#define REAL_MDNS_DAEMONS (0)
4215
#endif
4216
4217
#if GEO_1588 == GEO_TRUE
4218
#define REAL_1588_DAEMONS (1)
4219
#else
4220
#define REAL_1588_DAEMONS (0)
4221
#endif
4222
4223
#define DAEMON_MAXRECORD (REAL_HTTP_DAEMONS+REAL_MQTT_DAEMONS+REAL_MDNS_DAEMONS+REAL_1588_DAEMONS+REAL_TCP_DAEMONS)
4224
4225
4226
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
4227
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
4228
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
4229
#define GEO_WIFI_STATION_MODE GEO_FALSE
4230
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
4231
#define GEO_NETWORK_DONT_CLOSE_ON_SEND_TIMEOUTS GEO_TRUE
4232
4233
#if GEO_NET_3100 == GEO_TRUE
4234
#define GEO_CONFIG_STATIC_IP GEO_FALSE
4235
#else
4236
#define GEO_CONFIG_STATIC_IP GEO_FALSE
4237
#endif
4238
4239
#define GEO_DEVICE_NICKNAME GEO_TRUE
4242
#define GEO_MAGARROW_TEXT_FILES GEO_FALSE
4243
#if GEO_MAGARROW_TEXT_FILES == GEO_TRUE
4244
#define GEO_WRITE_TEXT_FILE_HEADERS GEO_TRUE
4245
#else
4246
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
4247
#endif
4248
4249
#define GM_LOGGING_MODE_MONITOR_DATA (0)
4250
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
4251
/* IGNORE_ALL is not used in setting up m_apsStorages */
4252
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
4253
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
4254
4255
#define THIS_APP_MAG_DATA_TYPE 0
4256
//#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MFAM_BLOCK_DATA_TYPE + 1)
4257
//#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
4258
#define THIS_APP_APP_EVENTS (THIS_APP_MAG_DATA_TYPE + 1)
4259
/* Used to define "m_apsStorages" */
4260
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
4261
//#define THIS_APP_MFAM_BLOCK_DATA_TYPE 6
4262
4263
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
4264
4265
#define GEO_APP_MAJOR_VERSION "0"
4266
#define GM_SIZE_OF_APP_DATA_QUEUE 2100
4267
#define GM_MFAM_TEXT_LONG_FORMAT GEO_TRUE
4268
#define COUNT_MFAM_BUFFERS 2000
4269
#define MFAM_FRAMES GEO_FALSE
4270
#define ALLOW_DELETE_SURVEYS GEO_FALSE
4271
#define ALLOW_DELETE_DATA_FILES GEO_FALSE
4272
#define GEO_APP_MINOR_VERSION "0"
4273
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
4274
#define COUNT_862_MAGS 400
4275
#else
4276
#define COUNT_862_MAGS 0
4277
#endif
4278
4279
4280
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
4281
#define BLOCKS_PER_ACQUISITION_DATA_FILE 10000
4282
#endif
4283
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
4284
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
4285
#endif
4286
4287
#define GEO_TCP_STREAMING GEO_TRUE
4288
#define GEO_TCP_STREAMING_PORT 1000
4289
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
4290
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
4291
#define GEO_LOG_PPS_DATA GEO_FALSE
4292
#define GEO_TEN_HERTZ_FROM_PPS GEO_NOT_RELEVANT
4293
#define GEO_SINGLE_SURVEY GEO_FALSE
4294
#define EMU_1HZ_NOT
4295
4296
#define GEO_DEFAULT_WEB_PAGE "status.htm"
4297
4298
/*********** Network configuration and debugging ******************/
4299
#define NETWORK_TRACE GEO_TRUE
4300
4301
#if BOARD_PACTRON_1 == GEO_TRUE
4302
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_PACTRON | 0x01
4303
#if GEO_NET_3100 == GEO_TRUE
4304
#define GEO_DYNAMIC_WIFI_SSID GEO_TRUE
4305
#define GEO_APP_NAME "Dolphin WiFi Streamer"
4306
#define GEO_SSID "Dolphin"
4307
#define GEO_CONFIG_STATIC_IP GEO_FALSE
4308
#else
4309
#if GEO_CONFIG_STATIC_IP == GEO_TRUE
4310
#define GEO_APP_NAME "Dolphin StaticIP Streamer"
4311
#define GEO_SSID "DolphinStatic"
4312
#else
4313
#define GEO_APP_NAME "Dolphin DHCP Streamer"
4314
#define GEO_SSID "DolphinDHCP"
4315
#endif
4316
#endif
4317
#elif BOARD_1292NCPDT_UNIFIED == GEO_TRUE
4318
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_1292NCPDT
4319
#if GEO_NET_3100 == GEO_TRUE
4320
#define GEO_DYNAMIC_WIFI_SSID GEO_TRUE
4321
#define GEO_APP_NAME "Dolphin WiFi Streamer"
4322
#define GEO_SSID "Dolphin"
4323
#define GEO_CONFIG_STATIC_IP GEO_FALSE
4324
#else
4325
#if GEO_CONFIG_STATIC_IP == GEO_TRUE
4326
#define GEO_APP_NAME "Dolphin StaticIP Streamer"
4327
#define GEO_SSID "DolphinStatic"
4328
#else
4329
#define GEO_APP_NAME "Dolphin DHCP Streamer"
4330
#define GEO_SSID "DolphinDHCP"
4331
#endif
4332
#endif
4333
#else
4334
#error This application is designed for the pactron dev kit.
4335
#endif
4336
4337
#define GEO_STATIC_NETWORK_PROVISIONED GEO_FALSE
4338
4339
#define FILE_LOGGING_ALWAYS GEO_TRUE
4340
//#define GEO_TEXT_MODE_ONLY
4341
#define SDSPI_BITRATE 12500000
4342
#define acs "ccs"
4343
#define accs
4344
#define aPART_TM4C1294NCPDT
4345
#define aTIVAWARE
4346
#define GEO_TEST_STORAGEa
4347
#define axdc_target_types__ ti/targets/std.h
4348
4349
/* Enable/Disable some test routines. If not testing that, then FALSE */
4350
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
4351
4352
/* Priorities */
4353
#define HTTP_DAEMON_PRIORITY 4
4354
#define MQTT_DAEMON_PRIORITY 4
4355
#define MAIN_TASK_STARTUP_PRIORITY
4356
#define MAIN_TASK_LOOP_PRIORITY
4357
#define WIFI_STARTUP_TASK_PRIORITY 9
4358
#define SYS_MGMT_TASK_PRIORITY 1
4359
#define GEO_STANDARD_UART_TASK_PRIORITY 8
4360
#define WIFI_DAEMON_TASK_PRIORITY 10
4361
4362
4363
#endif
4364
4365
4366
4367
/*************************************************
4368
* Pactron MFAM dev kit
4369
**************************************************/
4370
#if GEO_APP_PACTRON_DEV_KIT == GEO_TRUE
4371
4372
#define GEO_APP_EMBEDDED_PROGRAM_NAME "DEVKIT"
4373
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "DEVKIT"
4374
#define HTTP_DOMAIN_NAME "devkit.net"
4375
#define GEO_APP_MAJOR_VERSION "1"
4376
#define GEO_APP_MINOR_VERSION "1"
4377
4378
4379
/***********************************************************************/
4380
/* Dev kit - Wifi enabled, HTTP and files, but not MQQT. */
4381
/* HTTP only through original "direct" mode, not through */
4382
/* Jekyll/Handlebars/JSON */
4383
/* Text files */
4384
/* SD card only. */
4385
/***********************************************************************/
4386
4387
/*** Primary elements **/
4388
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
4389
#define BOARD_PACTRON_1 GEO_TRUE
4390
#define BOARD_UNIFIED_03 GEO_FALSE
4391
4392
#define GEO_HARD_MAG_SUBSAMPLE 0
4393
4394
#define EMULATE_MFAM_SENSOR GEO_FALSE
4395
#define MFAM_EMULATOR_FID_CYCLE 1000
4396
#define MFAM_MODULE GEO_TRUE
4397
#define MFAM_WAIT_FOR_QUIET_SPI GEO_TRUE
4398
#define GEO_SERIAL_CESIUM_MAG GEO_NOT_RELEVANT
4399
#define GEO_I2C GEO_FALSE
4400
4401
#define GEO_SIMPLE_WIFI_ACQUISITION GEO_TRUE
4402
4403
#define GEO_SDCARD GEO_TRUE
4404
#define GEO_USB_STORAGE GEO_FALSE
4405
#define GEO_PRIMARY_STORAGE GEO_SD
4406
#define GEO_USES_APP_CONFIG_FILES GEO_TRUE
4407
#define GEO_CONFIG_STORAGE "0:"
4408
#define GEO_LOG_STORAGE "0:"
4409
4410
4411
#define GEO_WIFI_STATION_MODE GEO_FALSE
4412
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
4413
4414
#define GEO_MQTT GEO_FALSE
4415
4416
/******* GPS, PPS, 1588, i.e. location and timing ******/
4417
/* Those choices are driven by the presence or absence
4418
* of 1588
4419
*/
4420
#define GEO_1588 GEO_TRUE
4421
#define GEO_MDNS_SD GEO_FALSE
4422
4423
#if GEO_MDNS_SD == GEO_TRUE
4424
#define GEO_MDNS_SD_SERVICE_NAME "_mfamdevkit._tcp.local"
4425
#define GEO_MDNS_SD_SERVICE_HOST_NAME "devkit"
4426
#define GEO_MDNS_SD_SERVICE_PORT 400
4427
#endif
4428
4429
#if (GEO_1588 == GEO_TRUE)
4430
#define GEO_PPS_EVENTS GEO_FALSE
4431
#define CHOOSE_PPS_DUTY_CYCLE GEO_NOT_RELEVANT
4432
#define GPS_ENABLED GEO_NOT_RELEVANT
4433
#else
4434
#define GEO_PPS_EVENTS GEO_TRUE
4435
#define CHOOSE_PPS_DUTY_CYCLE GEO_TRUE
4436
#define GPS_ENABLED GEO_TRUE
4437
#endif
4438
#if GPS_ENABLED == GEO_TRUE
4439
#define GEO_GPS_ADAFRUIT GEO_TRUE
4440
#define GEO_GPS_TALLYSMAN_5431 GEO_FALSE
4441
#define GEO_GPS_SIERRA_1110 GEO_FALSE
4442
#endif
4443
4444
4445
/* Wifi or Ethernet? */
4446
#define NETWORK_TRACE GEO_TRUE
4447
#define GEO_NET_3100 GEO_FALSE
4448
#define GEO_DYNAMIC_WIFI_SSID GEO_TRUE
4450
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
4451
4452
#if GEO_NET_3100 == GEO_TRUE
4453
#if GEO_MDNS_SD == GEO_TRUE
4454
#error MDNS_SD is not currently supported in WiFi applications
4455
#endif
4456
#endif
4457
4458
#if GEO_1588 == GEO_TRUE
4459
#define DAEMON_MAXRECORD 5
4460
#else
4461
#define DAEMON_MAXRECORD 3
4462
#endif
4463
#define NUM_HTTP_DAEMONS 7
4464
#define NUM_MQTT_DAEMONS 0
4465
//#define GEO_MAX_APP_STORAGES (5)
4466
//#define GEO_MAX_APP_STORAGE_MODES (5)
4467
//#define GEO_MAX_APP_SENSORS (8)
4468
4470
#define EMBEDDED_DATA_STORAGE GEO_TRUE
4471
//#define GEO_CACHE_LAST_FILE_INDEX GEO_FALSE
4472
#define GEO_LOG_FILES GEO_TRUE
4473
#define FILES_PER_DIRECTORY 200
4474
#define FILES_IN_DIRECTORIES GEO_FALSE
4475
#define GEO_CACHE_LAST_FILE_INDEX GEO_FALSE
4476
4477
#define GEO_SENSOR_LIGHT GEO_FALSE
4478
#define GEO_STORAGE_LIGHT GEO_FALSE
4479
#define GEO_PPS_LIGHT GEO_FALSE
4480
#define GEO_GPS_LIGHT GEO_FALSE
4481
4482
/********************************************************************************
4483
* Setting up sensor data types.
4484
* These are used to identify the use of particular sensors in this application,
4485
* The max number is used to set up the array "m_apsStorages", where it is
4486
* preferable, in order to save space, not to have unused items.
4487
* So, in this section, we try to make them contiguous.
4488
********************************************************************************/
4489
#if GEO_1588 == GEO_TRUE
4490
#define THIS_APP_MAG_DATA_TYPE 0
4491
#define THIS_APP_APP_EVENTS (THIS_APP_MAG_DATA_TYPE + 1)
4492
/* Used to define "m_apsStorages" */
4493
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
4494
#else
4495
#define THIS_APP_MAG_DATA_TYPE 0
4496
#define THIS_APP_GPS_DATA_TYPE (THIS_APP_MAG_DATA_TYPE + 1)
4497
#define THIS_APP_PPS_EVENTS (THIS_APP_GPS_DATA_TYPE + 1)
4498
#define THIS_APP_APP_EVENTS (THIS_APP_PPS_EVENTS + 1)
4499
/* Used to define "m_apsStorages" */
4500
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
4501
#endif
4502
4503
4504
/**************************************************************************/
4505
/* Logging modes, indicating what the application should do with data.
4506
* The order of these doesn't matter, but the total number of them matters,
4507
* and they are used as indexes into "m_apsStorages" matters, so we
4508
* want to keep that array small if we can. These are never saved in any
4509
* DB, or transmitted over the network.
4510
**************************************************************************/
4511
#define GM_LOGGING_MODE_MONITOR_DATA (0)
4512
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
4513
/* IGNORE_ALL is not used in setting up m_apsStorages */
4514
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
4515
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
4516
4517
/**************************************************************************
4518
* This number refers to the maximum number of storages that are
4519
* set up into "m_apsStorages". There may be additional storages for
4520
* other reasons, but that's what this one is about.
4521
* If this isn't set up correctly then m_apsStorages will blow up.
4522
**************************************************************************/
4523
#define GEO_MAX_APP_STORAGES (2)
// Maximum numnber of storages
4524
4525
#define GEO_WIFI_STATION_MODE GEO_FALSE
4526
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
4527
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
4528
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
4529
4530
4531
4533
4534
#define GEO_MAGARROW_TEXT_FILES GEO_TRUE
4535
#if GEO_MAGARROW_TEXT_FILES == GEO_TRUE
4536
#define GEO_WRITE_TEXT_FILE_HEADERS GEO_TRUE
4537
#else
4538
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
4539
#endif
4540
4541
#define GEO_WRITE_MFAM_BLOCKS GEO_FALSE
4542
4543
//#define GM_SIZE_OF_APP_DATA_QUEUE 2550 // wifi values are different?
4544
#define GM_SIZE_OF_APP_DATA_QUEUE 2050
4545
#define GM_MFAM_TEXT_LONG_FORMAT GEO_TRUE
4546
// #define COUNT_MFAM_BUFFERS 2500
4547
#define COUNT_MFAM_BUFFERS 2000
4548
#define MFAM_FRAMES GEO_FALSE
4549
#define ALLOW_DELETE_SURVEYS GEO_TRUE
4550
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
4551
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
4552
#define COUNT_862_MAGS 400
4553
#else
4554
#define COUNT_862_MAGS 0
4555
#endif
4556
4557
4558
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
4559
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200000
4560
#endif
4561
#if GEO_SERIAL_CESIUM_MAG == GEO_TRUE
4562
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
4563
#endif
4564
4565
#define GEO_TCP_STREAMING GEO_FALSE
4566
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
4567
#define GEO_CONFIGPROVISION_EEPROM GEO_FALSE
4568
#define GEO_LOG_PPS_DATA GEO_TRUE
4569
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
4570
#define GEO_SINGLE_SURVEY GEO_TRUE
4571
#define EMU_1HZ_NOT
4572
4573
#define GEO_CONFIG_STATIC_IP GEO_FALSE
4574
4575
#if BOARD_PACTRON_1 == GEO_TRUE
4576
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_PACTRON | 0x01
4577
#if GEO_NET_3100 == GEO_TRUE
4578
#define GEO_APP_NAME "Geometrics MFAM DevKit"
4579
#define GEO_SSID "Tezzeret-PB"
4580
#define GEO_CONFIG_STATIC_IP GEO_FALSE
4581
#else
4582
#if GEO_CONFIG_STATIC_IP == GEO_TRUE
4583
#define GEO_APP_NAME "MFAM DK Static"
4584
#define GEO_SSID "Tezzeret-PB"
4585
#define GEO_DEVICE_NICKNAME GEO_TRUE
4586
#else
4587
#define GEO_APP_NAME "MFAM DK DHCP"
4588
#define GEO_SSID "Tezzeret-PB"
4589
#define GEO_DEVICE_NICKNAME GEO_TRUE
4590
#endif
4591
#endif
4592
#else
4593
#error This application is designed only for the pactron dev kit.
4594
#endif
4595
4596
#define FILE_LOGGING_ALWAYS
4597
//#define GEO_TEXT_MODE_ONLY
4598
#define SDSPI_BITRATE 12500000
4599
#define acs "ccs"
4600
#define accs
4601
#define aPART_TM4C1294NCPDT
4602
#define aTIVAWARE
4603
#define GEO_TEST_STORAGEa
4604
#define axdc_target_types__ ti/targets/std.h
4605
4606
/* Enable/Disable some test routines. If not testing that, then FALSE */
4607
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
4608
#define WIFI_DAEMON_TASK_PRIORITY 10
4609
#define HTTP_DAEMON_PRIORITY 4
4610
#define MQTT_DAEMON_PRIORITY 4
4611
#define MAIN_TASK_STARTUP_PRIORITY
4612
#define MAIN_TASK_LOOP_PRIORITY
4613
#define WIFI_STARTUP_TASK_PRIORITY 9
4614
#define SYS_MGMT_TASK_PRIORITY 1
4615
#define GEO_STANDARD_UART_TASK_PRIORITY 8
4616
4617
/************** End DevKit ***************/
4618
#endif
4619
4620
4621
4622
#if GEO_BOOTLOADER == GEO_TRUE
4623
4624
#define GEO_APP_EMBEDDED_PROGRAM_NAME "BOOTLOADER"
4625
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "BOOTLOADER"
4626
#define HTTP_DOMAIN_NAME "geometrics.net"
4627
#define GEO_APP_MAJOR_VERSION "1"
4628
4629
4630
/***********************************************************************/
4631
/* Bootloader. */
4632
/***********************************************************************/
4633
4634
/* Set to pactron for the MFAM dev kit, and unified board for most products. */
4635
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
4636
#define BOARD_PACTRON_1 GEO_TRUE
4637
#define BOARD_UNIFIED_03 GEO_FALSE
4638
4639
#define GEO_SDCARD GEO_TRUE
4640
#define GEO_USB_STORAGE GEO_TRUE
4641
4642
#if BOARD_TIVA_LAUNCHPAD == GEO_TRUE
4643
#elif BOARD_PACTRON_1 == GEO_TRUE
4644
#elif BOARD_UNIFIED_03 == GEO_TRUE
4645
#else
4646
#error missing valid board definition
4647
#endif
4648
4649
#define GEO_I2C GEO_FALSE
4650
4651
#define EMBEDDED_DATA_STORAGE GEO_FALSE
4652
//#define GEO_CACHE_LAST_FILE_INDEX GEO_FALSE
4653
4654
4655
4656
#if BOARD_TIVA_LAUNCHPAD == GEO_TRUE
4657
#define GEO_APP_NAME "Geometrics Bootloader"
4658
#define GEO_SSID "Tezzeret"
4659
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_TIVA_EIVA
4660
#define GEO_PRIMARY_STORAGE GEO_SD
4661
#define GEO_USES_APP_CONFIG_FILES GEO_FALSE
4662
//#define GEO_CONFIG_STORAGE "0:"
4663
#endif
4664
#if BOARD_PACTRON_1 == GEO_TRUE
4665
#define GEO_APP_NAME "Geometrics Bootloader"
4666
#define GEO_SSID "Tezzeret"
4667
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_PACTRON | 0x01
4668
#define GEO_PRIMARY_STORAGE GEO_SD
4669
#define GEO_USES_APP_CONFIG_FILES GEO_FALSE
4670
//#define GEO_CONFIG_STORAGE "0:"
4671
#endif
4672
#if BOARD_UNIFIED_03 == GEO_TRUE
4673
#define GEO_APP_NAME "Geometrics Bootloader"
4674
#define GEO_SSID "Tezzeret"
4675
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL|0x03
4676
#define GEO_PRIMARY_STORAGE GEO_USB
4677
#define GEO_USES_APP_CONFIG_FILES GEO_FALSE
4678
//#define GEO_CONFIG_STORAGE "1:"
4679
#endif
4680
#define GEO_FILE_SYNCH_EVENTS GEO_FALSE
4681
#define GEO_NO_FILE_TIMEKEEPING GEO_TRUE
4682
#define GM_SIZE_OF_APP_DATA_QUEUE 10
4683
#define GM_MFAM_TEXT_LONG_FORMAT GEO_TRUE
4684
#define COUNT_MFAM_BUFFERS 100
4685
#define COUNT_862_MAGS 0
4686
#define DAEMON_MAXRECORD 3
4687
#define BLOCKS_PER_ACQUISITION_DATA_FILE 1
4688
4689
#define FILES_PER_DIRECTORY 1
4690
#define FILES_IN_DIRECTORIES GEO_FALSE
4691
4692
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
4693
#define NUM_HTTP_DAEMONS 2
4694
#define NUM_MQTT_DAEMONS 1
4695
#define GEO_MAX_APP_STORAGES (5)
4696
4697
4698
4699
#define GEO_DYNAMIC_WIFI_SSID GEO_FALSE
4700
#define GEO_WIFI_STATION_MODE GEO_FALSE
4701
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
4702
4703
#define MFAM_FRAMES GEO_FALSE
4704
#define ALLOW_DELETE_SURVEYS GEO_FALSE
4705
#define ALLOW_DELETE_DATA_FILES GEO_FALSE
4706
#define GEO_APP_MINOR_VERSION "0"
4707
#define EMULATE_MFAM_SENSOR GEO_FALSE
4708
4709
/* Not used in this application, but needed for build. */
4710
#define GM_LOGGING_MODE_MONITOR_DATA (0)
4711
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
4712
/* IGNORE_ALL is not used in setting up m_apsStorages */
4713
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
4714
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
4715
4716
#define THIS_APP_APP_EVENTS 0
4717
/* Used to define "m_apsStorages" */
4718
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
4719
4720
4721
#define MFAM_MODULE GEO_FALSE
4722
#define GEO_SERIAL_CESIUM_MAG GEO_FALSE
4723
#define GEO_TCP_STREAMING GEO_FALSE
4724
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
4725
#define GPS_ENABLED GEO_FALSE
4726
#define GEO_CONFIGPROVISION_EEPROM GEO_FALSE
4727
#define GEO_MQTT GEO_FALSE
4728
#define GEO_PPS_EVENTS GEO_FALSE
4729
#define GEO_LOG_PPS_DATA GEO_FALSE
4730
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
4731
#define GEO_SINGLE_SURVEY GEO_FALSE
4732
#define EMU_1HZ_NOT
4733
4734
#define GEO_NET_3100 GEO_TRUE
4735
4736
#define GEO_SENSOR_LIGHT GEO_FALSE
4737
#define GEO_STORAGE_LIGHT GEO_FALSE
4738
#define GEO_PPS_LIGHT GEO_FALSE
4739
#define GEO_GPS_LIGHT GEO_FALSE
4740
4741
#define GEO_864_PPS_LOCK GEO_FALSE
4742
4743
4744
#define FILE_LOGGING_ALWAYS
4745
//#define GEO_TEXT_MODE_ONLY
4746
#define SDSPI_BITRATE 12500000
4747
#define acs "ccs"
4748
#define accs
4749
#define aPART_TM4C1294NCPDT
4750
#define aTIVAWARE
4751
#define GEO_TEST_STORAGEa
4752
#define axdc_target_types__ ti/targets/std.h
4753
4754
/* Enable/Disable some test routines. If not testing that, then FALSE */
4755
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
4756
/* Priorities */
4757
#define HTTP_DAEMON_PRIORITY 4
4758
//#define MQTT_DAEMON_PRIORITY 4
4759
#define MAIN_TASK_STARTUP_PRIORITY
4760
#define MAIN_TASK_LOOP_PRIORITY
4761
#define WIFI_STARTUP_TASK_PRIORITY 9
4762
//#define SYS_MGMT_TASK_PRIORITY 1
4763
#define GEO_STANDARD_UART_TASK_PRIORITY 8
4764
#define WIFI_DAEMON_TASK_PRIORITY 10
4765
4766
4767
#endif
4768
4769
4770
#if GEO_FLASHTEST == GEO_TRUE
4771
/***********************************************************************/
4772
/* Flash Test. */
4773
/***********************************************************************/
4774
/* RHC 2/23 - I don't know what this application is. */
4775
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
4776
#define BOARD_PACTRON_1 GEO_TRUE
4777
#if BOARD_TIVA_LAUNCHPAD == GEO_TRUE
4778
#define GEO_APP_NAME "Geometrics Mag-Arrow-LP"
4779
#define GEO_SSID "Bootloader"
4780
#else
4781
#define GEO_APP_NAME "Geometrics MagArrow-PB"
4782
#define GEO_SSID "Bootloader"
4783
#endif
4784
4785
#define GEO_NO_FILE_TIMEKEEPING GEO_TRUE
4786
#define GEO_APP_MAJOR_VERSION "1"
4787
#define GM_SIZE_OF_APP_DATA_QUEUE 10
4788
#define GM_MFAM_TEXT_LONG_FORMAT GEO_TRUE
4789
#define COUNT_MFAM_BUFFERS 100
4790
#define MFAM_FRAMES GEO_FALSE
4791
#define ALLOW_DELETE_SURVEYS GEO_FALSE
4792
#define ALLOW_DELETE_DATA_FILES GEO_FALSE
4793
#define GEO_APP_MINOR_VERSION "0"
4794
#define EMULATE_MFAM_SENSOR GEO_FALSE
4795
4796
#define MFAM_MODULE GEO_FALSE
4797
#define GEO_SERIAL_CESIUM_MAG GEO_FALSE
4798
#define GEO_TCP_STREAMING GEO_FALSE
4799
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
4800
#define GPS_ENABLED GEO_FALSE
4801
#define GEO_CONFIGPROVISION_EEPROM GEO_FALSE
4802
#define GEO_MQTT GEO_FALSE
4803
#define GEO_PPS_EVENTS GEO_FALSE
4804
#define GEO_LOG_PPS_DATA GEO_FALSE
4805
#define GEO_SDCARD GEO_TRUE
4806
#define GEO_USB_STORAGE GEO_FALSE
4807
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
4808
#define GEO_SINGLE_SURVEY GEO_FALSE
4809
#define EMU_1HZ_NOT
4810
4811
#define GEO_NET_3100 GEO_TRUE
4812
4813
#define FILE_LOGGING_ALWAYS
4814
//#define GEO_TEXT_MODE_ONLY
4815
#define SDSPI_BITRATE 12500000
4816
#define acs "ccs"
4817
#define accs
4818
#define aPART_TM4C1294NCPDT
4819
#define aTIVAWARE
4820
#define GEO_TEST_STORAGEa
4821
#define axdc_target_types__ ti/targets/std.h
4822
4823
/* Enable/Disable some test routines. If not testing that, then FALSE */
4824
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
4825
4826
#endif
4827
4828
4829
#if GEO_APP_EH5_MAIN_FIRMWARE == GEO_TRUE
4830
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
4831
#define GEO_APP_NAME "EH5"
4832
#define GEO_SSID "EH5"
4833
#define GEO_APP_MAJOR_VERSION "0"
4834
#define GEO_APP_MINOR_VERSION "1"
4835
//#define GEO_APP_BUILD_NUMBER "NOT-TO-RELEASE"
4836
#define GM_SIZE_OF_APP_DATA_QUEUE 4050
4837
#define COUNT_MFAM_BUFFERS 4000
4838
4839
#define EMULATE_MFAM_SENSOR GEO_FALSE
4840
#define MFAM_MODULE GEO_FALSE
4841
#define GEO_SERIAL_CESIUM_MAG GEO_FALSE
4842
#define GEO_TCP_STREAMING GEO_FALSE
4843
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
4844
#define GPS_ENABLED GEO_FALSE
4845
#define GEO_MQTT GEO_TRUE
4846
#define GEO_PPS_EVENTS GEO_FALSE
4847
#define GEO_SDCARD GEO_FALSE
4848
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
4849
#define EMU_1HZ_NOT
4850
4851
#define GEO_I2C GEO_TRUE
4852
4853
4854
#define GEO_NET_3100 GEO_FALSE
4855
4856
#define FILE_LOGGING_ALWAYS
4857
//#define GEO_TEXT_MODE_ONLY
4858
#define SDSPI_BITRATE 12500000
4859
#define acs "ccs"
4860
#define accs
4861
#define GEO_TEST_STORAGEa
4862
//#define axdc_target_types__ ti/targets/std.h
4863
4864
#define GEO_FILE_SYNCH_EVENTS GEO_TRUE
4865
4866
4867
#define DAEMON_MAXRECORD 3
4868
#define NUM_HTTP_DAEMONS 3
4869
#define NUM_MQTT_DAEMONS 1
4870
#define GEO_MAX_APP_STORAGES (5)
4871
#define GEO_MAX_APP_STORAGE_MODES (5)
4872
4873
4874
/* Enable/Disable some test routines. If not testing that, then FALSE */
4875
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
4876
4877
4878
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_C6748|0x01
4879
4880
#endif
4881
4882
#if GEO_PROVISIONING_APP == GEO_TRUE
4883
#define GEO_APP_EMBEDDED_PROGRAM_NAME "PRVSNR"
4884
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "PRVSNR"
4885
#define GEO_APP_MAJOR_VERSION "1"
4886
#define GEO_APP_MINOR_VERSION "0"
4887
#define GEO_APP_NAME "Geometrics Provisioning"
4888
#define HTTP_DOMAIN_NAME "geoprov.net"
4889
#define GEO_SSID "Tezzeret"
4890
4891
4892
#define GEO_IS_PROVISIONING_APP GEO_TRUE
4893
4894
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
4895
#define BOARD_PACTRON_1 GEO_TRUE
4896
#define BOARD_UNIFIED_03 GEO_FALSE
4897
4898
#define EMULATE_MFAM_SENSOR GEO_FALSE
4899
#define MFAM_MODULE GEO_FALSE
4900
#define GEO_SERIAL_CESIUM_MAG GEO_FALSE
4901
4902
#define GEO_WIFI_STATION_MODE GEO_FALSE
4903
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
4904
4905
#define GEO_MAX_APP_STORAGES (5)
4906
#define BLOCKS_PER_ACQUISITION_DATA_FILE 1
4907
4908
4909
#define GPS_ENABLED GEO_FALSE
4910
#if GPS_ENABLED == GEO_TRUE
4911
#define GEO_GPS_ADAFRUIT GEO_FALSE
4912
#define GEO_GPS_TALLYSMAN_5431 GEO_FALSE
4913
#define GEO_GPS_SIERRA_1110 GEO_FALSE
4914
#endif
4915
4916
#define GEO_I2C GEO_FALSE
4917
4918
#if BOARD_TIVA_LAUNCHPAD == GEO_TRUE
4919
#elif BOARD_PACTRON_1 == GEO_TRUE
4920
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_PACTRON | 0x01
4921
#define GEO_PROVISION_SOURCE GEO_SD
4922
#define GEO_SDCARD GEO_TRUE
4923
#define GEO_USES_APP_CONFIG_FILES GEO_FALSE
4924
//#define GEO_CONFIG_STORAGE "0:"
4925
#define GEO_USB_STORAGE GEO_FALSE
4926
#define GEO_PRIMARY_STORAGE GEO_SD
4927
4928
#elif BOARD_UNIFIED_03 == GEO_TRUE
4929
#define EMBEDDED_DATA_STORAGE GEO_FALSE
4930
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_UNIFIED|GEO_SYSTEM_BOARD_SUBCLASS_UNIFIED_ALL|0x03
4931
#define GEO_PROVISION_SOURCE GEO_USB
4932
#define GEO_SDCARD GEO_FALSE
4933
#define GEO_USB_STORAGE GEO_TRUE
4934
#define GEO_PRIMARY_STORAGE GEO_USB
4935
#define GEO_USES_APP_CONFIG_FILES GEO_FALSE
4936
#define GEO_CONFIG_STORAGE "1:"
4937
// #define GEO_CACHE_LAST_FILE_INDEX GEO_FALSE
4938
#define GEO_LOG_FILES GEO_FALSE
4939
#define FILES_PER_DIRECTORY 200
4940
#define FILES_IN_DIRECTORIES GEO_FALSE
4941
4942
4943
#else
4944
#error Need a board type
4945
#endif
4946
4947
#define GEO_ACCESS_POINT_PASSWORD GEO_TRUE
4948
#define GEO_ACCESS_POINT_CHANNEL GEO_TRUE
4949
#define GEO_DYNAMIC_WIFI_SSID GEO_FALSE
4950
4951
/**************************************************************************/
4952
/* Logging modes, indicating what the application should do with data.
4953
* The order of these doesn't matter, but the total number of them matters,
4954
* and they are used as indexes into "m_apsStorages" matters, so we
4955
* want to keep that array small if we can. These are never saved in any
4956
* DB, or transmitted over the network.
4957
**************************************************************************/
4958
#define GM_LOGGING_MODE_MONITOR_DATA (0)
4959
#define GM_LOGGING_SAVE_DATA_TO_FILES (GM_LOGGING_MODE_MONITOR_DATA + 1)
4960
/* IGNORE_ALL is not used in setting up m_apsStorages */
4961
#define GM_LOGGING_MODE_IGNORE_ALL_DATA (GM_LOGGING_SAVE_DATA_TO_FILES + 1)
4962
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_IGNORE_ALL_DATA)
4963
4964
#define THIS_APP_APP_EVENTS 0
4965
/* Used to define "m_apsStorages" */
4966
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
4967
//#define THIS_APP_MFAM_BLOCK_DATA_TYPE 6#define GEO_STANDARD_UART_TASK_PRIORITY 8
4968
4969
#define DAEMON_MAXRECORD 3
4970
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
4971
4972
4973
#define GEO_FILE_SYNCH_EVENTS GEO_FALSE
4974
#define COUNT_862_MAGS 1
4975
#define NUM_HTTP_DAEMONS 3
4976
#define GM_SIZE_OF_APP_DATA_QUEUE 2500
4977
#define COUNT_MFAM_BUFFERS 2000
4978
#define MFAM_FRAMES GEO_FALSE
4979
#define ALLOW_DELETE_SURVEYS GEO_FALSE
4980
#define ALLOW_DELETE_DATA_FILES GEO_FALSE
4981
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
4982
#define GEO_TCP_STREAMING GEO_FALSE
4983
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
4984
#define GPS_ENABLED GEO_FALSE
4985
#define GEO_MQTT GEO_FALSE
4986
#define GEO_PPS_EVENTS GEO_FALSE
4987
#define GEO_LOG_PPS_DATA GEO_FALSE
4988
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
4989
#define EMU_1HZ_NOT
4990
4991
#define GEO_SENSOR_LIGHT GEO_FALSE
4992
#define GEO_STORAGE_LIGHT GEO_FALSE
4993
#define GEO_PPS_LIGHT GEO_FALSE
4994
#define GEO_GPS_LIGHT GEO_FALSE
4995
4996
4997
#define NUM_MQTT_DAEMONS 2
4998
4999
#define GEO_NET_3100 GEO_TRUE
5000
5001
#define FILE_LOGGING_ALWAYS GEO_FALSE
5002
//#define GEO_TEXT_MODE_ONLY
5003
#define SDSPI_BITRATE 12500000
5004
#define acs "ccs"
5005
#define accs
5006
#define aPART_TM4C1294NCPDT
5007
#define aTIVAWARE
5008
#define GEO_TEST_STORAGEa
5009
#define axdc_target_types__ ti/targets/std.h
5010
5011
/* Enable/Disable some test routines. If not testing that, then FALSE */
5012
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
5013
5014
/* Priorities */
5015
#define HTTP_DAEMON_PRIORITY 4
5016
#define MQTT_DAEMON_PRIORITY 4
5017
#define MAIN_TASK_STARTUP_PRIORITY
5018
#define MAIN_TASK_LOOP_PRIORITY
5019
#define WIFI_STARTUP_TASK_PRIORITY 9
5020
#define SYS_MGMT_TASK_PRIORITY 1
5021
#define GEO_STANDARD_UART_TASK_PRIORITY 8
5022
#define WIFI_DAEMON_TASK_PRIORITY 10
5023
5024
#define FILES_IN_DIRECTORIES GEO_FALSE
5025
#define FILES_PER_DIRECTORY 200
5026
5027
#endif
5028
5029
/*****************************************************
5030
* EIVA provisioner
5031
****************************************************/
5032
5033
#if GEO_EIVA_PROVISIONING_APP == GEO_TRUE
5034
#define GEO_APP_EMBEDDED_PROGRAM_NAME "EIVA-PROVISIONER"
5035
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "EIVA-PROVISIONER"
5036
5037
5038
#define GEO_IS_PROVISIONING_APP GEO_TRUE
5039
#define GEO_STATIC_NETWORK_PROVISIONED GEO_TRUE
5040
#define BOARD_TIVA_LAUNCHPAD GEO_TRUE
5041
#define BOARD_PACTRON_1 GEO_FALSE
5042
#define BOARD_UNIFIED_03 GEO_FALSE
5043
5044
#define EMULATE_MFAM_SENSOR GEO_FALSE
5045
#define MFAM_MODULE GEO_FALSE
5046
#define GEO_SERIAL_CESIUM_MAG GEO_FALSE
5047
5048
#define GPS_ENABLED GEO_FALSE
5049
#if GPS_ENABLED == GEO_TRUE
5050
#define GEO_GPS_ADAFRUIT GEO_FALSE
5051
#define GEO_GPS_TALLYSMAN_5431 GEO_FALSE
5052
#define GEO_GPS_SIERRA_1110 GEO_FALSE
5053
#endif
5054
5055
#define GEO_I2C GEO_FALSE
5056
#define GEO_MQTT_SYNCH_REQUESTS GEO_FALSE
5057
#define GEO_WIFI_STATION_MODE GEO_FALSE
5058
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
5059
#define GEO_MAX_APP_STORAGES (2)
5060
#define GEO_MAX_APP_STORAGE_MODES (2)
5061
#define GEO_MAX_APP_SENSORS (3)
5062
#define BLOCKS_PER_ACQUISITION_DATA_FILE 10
5063
5064
5065
5066
5067
#if BOARD_TIVA_LAUNCHPAD == GEO_TRUE
5068
#define GEO_APP_NAME "Geometrics Eiva Provisioning "
5069
#define GEO_SSID "Tezzeret"
5070
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_TIVA_LAUNCHPAD
5071
5072
#define GEO_PROVISION_SOURCE GEO_USB
5073
#define GEO_SDCARD GEO_FALSE
5074
#define GEO_USB_STORAGE GEO_TRUE
5075
#define GEO_PRIMARY_STORAGE GEO_USB
5076
#endif
5077
5078
#define FILES_PER_DIRECTORY 1
5079
#define FILES_IN_DIRECTORIES GEO_FALSE
5080
5081
5082
#define DAEMON_MAXRECORD 3
5083
5084
#define GEO_FILE_SYNCH_EVENTS GEO_FALSE
5085
#define COUNT_862_MAGS 0
5086
#define NUM_HTTP_DAEMONS 3
5087
#define GEO_APP_MAJOR_VERSION "1"
5088
#define GM_SIZE_OF_APP_DATA_QUEUE 2500
5089
#define COUNT_MFAM_BUFFERS 0
5090
#define MFAM_FRAMES GEO_FALSE
5091
#define ALLOW_DELETE_SURVEYS GEO_FALSE
5092
#define ALLOW_DELETE_DATA_FILES GEO_FALSE
5093
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
5094
#define GEO_APP_MINOR_VERSION "0"
5095
#define GEO_TCP_STREAMING GEO_FALSE
5096
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
5097
#define GPS_ENABLED GEO_FALSE
5098
#define GEO_MQTT GEO_FALSE
5099
#define GEO_PPS_EVENTS GEO_FALSE
5100
#define GEO_LOG_PPS_DATA GEO_FALSE
5101
#define GEO_TEN_HERTZ_FROM_PPS GEO_FALSE
5102
#define EMU_1HZ_NOT
5103
5104
#define NUM_MQTT_DAEMONS 0
5105
5106
#define GEO_NET_3100 GEO_FALSE
5107
5108
#define FILE_LOGGING_ALWAYS GEO_FALSE
5109
//#define GEO_TEXT_MODE_ONLY
5110
#define SDSPI_BITRATE 12500000
5111
#define acs "ccs"
5112
#define accs
5113
#define aPART_TM4C1294NCPDT
5114
#define aTIVAWARE
5115
#define GEO_TEST_STORAGEa
5116
#define axdc_target_types__ ti/targets/std.h
5117
5118
/* Enable/Disable some test routines. If not testing that, then FALSE */
5119
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
5120
5121
#endif
5122
5123
5124
/****************************************************************
5125
****** Network test application - 1588, MDNS, etc. ************
5126
***************************************************************/
5127
#if GEO_1588_GRANDMASTER == GEO_TRUE
5128
5129
#define GEO_APP_EMBEDDED_PROGRAM_NAME "1588-TEST"
5130
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "1588-TEST"
5131
#define HTTP_DOMAIN_NAME "test1588.net"
5132
5133
/********* General application info. - name, versioning, etc. *****/
5134
#define GEO_SCHEMA_VERSION 8
5135
5136
#define GEO_MDNS_SD GEO_TRUE
5137
#if GEO_MDNS_SD == GEO_TRUE
5138
#define GEO_MDNS_SD_SERVICE_NAME "_networktests._tcp.local"
5139
#define GEO_MDNS_SD_SERVICE_HOST_NAME "networktests"
5140
#define GEO_MDNS_SD_SERVICE_PORT 400
5141
#endif
5142
5143
#define GEO_1588 GEO_TRUE
5144
#define BOARD_TIVA_LAUNCHPAD GEO_TRUE
5145
#define GEO_APP_NAME "1588 Grandmaster Clock"
5146
#define GEO_SSID "Grandmaster"
5147
#define GEO_APP_MAJOR_VERSION "0"
5148
#define GEO_APP_MINOR_VERSION "1"
5149
#define BOARD_PACTRON_1 GEO_FALSE
5150
#define EMULATE_MFAM_SENSOR GEO_FALSE
5151
#define MFAM_MODULE GEO_FALSE
5152
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
5153
#define GEO_USES_APP_CONFIG_FILES GEO_FALSE
5154
#define EMBEDDED_DATA_STORAGE GEO_FALSE
5155
5156
/**************************************************************************/
5157
/* Only one mode for this application.
5158
**************************************************************************/
5159
#define GM_LOGGING_MODE_MONITOR_DATA (0)
5160
#define GEO_MAX_APP_STORAGE_MODES (GM_LOGGING_MODE_MONITOR_DATA)
5161
5162
/********************************************************************************
5163
* Setting up sensor data types.
5164
* These are used to identify the use of particular sensors in this application,
5165
* The max number is used to set up the array "m_apsStorages", where it is
5166
* preferable, in order to save space, not to have unused items.
5167
* So, in this section, we try to make them contiguous.
5168
********************************************************************************/
5169
//#define THIS_APP_MAG_DATA_TYPE 1
5170
#define THIS_APP_APP_EVENTS 0
5171
/* Used to define "m_apsStorages" */
5172
#define GEO_MAX_APP_SENSORS (THIS_APP_APP_EVENTS + 1)
5173
5174
5175
/* TODO RHC this is really unnecessary, except for compilation. Should
5176
* be conditional on data storage being used, whether on SD or USB or
5177
* in memory buffers. This application does no data storage, and it's
5178
* just a test and dev program, but stream application such as streaming
5179
* dev kit and maybe marine also don't need this, and it should be cleaned
5180
* up and removed. */
5181
#define BLOCKS_PER_ACQUISITION_DATA_FILE 50
5182
5183
5184
#define GEO_SERIAL_CESIUM_MAG GEO_FALSE
5185
#define GEO_TCP_STREAMING GEO_FALSE
5186
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
5187
#define GPS_ENABLED GEO_FALSE
5188
#define GEO_MQTT GEO_TRUE
5189
#define GEO_PPS_EVENTS GEO_FALSE
5190
#define CHOOSE_PPS_DUTY_CYCLE GEO_TRUE
5191
5192
#define EMU_1HZ_NOT
5193
#define GM_SIZE_OF_APP_DATA_QUEUE 500
5194
#define COUNT_MFAM_BUFFERS 10
5195
#define COUNT_862_MAGS 10
5196
#define GEO_MAX_APP_STORAGES (3)
5197
5198
#define GEO_WIFI_STATION_MODE GEO_FALSE
5199
#define GEO_MQTT_CONNECT_TO_BROKER GEO_TRUE
5200
5201
#define GEO_I2C GEO_FALSE
5202
5203
#if GPS_ENABLED == GEO_TRUE
5204
#define GEO_GPS_ADAFRUIT GEO_TRUE
5205
#endif
5206
5207
5208
#define GEO_FILE_SYNCH_EVENTS GEO_FALSE
5209
5210
/**** Network ***/
5211
#define GEO_NET_3100 GEO_FALSE
5212
#define GEO_HTTP_KEEP_ALIVE GEO_FALSE
5213
5214
5215
5216
#if BOARD_TIVA_LAUNCHPAD == GEO_TRUE
5217
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_TIVA_LAUNCHPAD
5218
#endif
5219
5220
/* This is really number of children, not daemons */
5221
#define NUM_HTTP_DAEMONS (3)
5222
#define NUM_MQTT_DAEMONS (1)
5223
5224
#define REAL_HTTP_DAEMONS (1)
5225
#define REAL_MQTT_DAEMONS (1)
5226
5227
#if GEO_MDNS_SD == GEO_TRUE
5228
#define REAL_MDNS_DAEMONS (1)
5229
#else
5230
#define REAL_MDNS_DAEMONS (0)
5231
#endif
5232
5233
#if GEO_1588 == GEO_TRUE
5234
#define REAL_1588_DAEMONS (1)
5235
#else
5236
#define REAL_1588_DAEMONS (0)
5237
#endif
5238
5239
#define DAEMON_MAXRECORD (REAL_HTTP_DAEMONS+REAL_MQTT_DAEMONS+REAL_MDNS_DAEMONS+REAL_1588_DAEMONS)
5240
5241
#define GEO_SDCARD GEO_FALSE
5242
#define GEO_USB_STORAGE GEO_FALSE
5243
#define GEO_PRIMARY_STORAGE GEO_SD
5244
5245
5246
#define FILE_LOGGING_ALWAYS
5247
//#define GEO_TEXT_MODE_ONLY
5248
#define SDSPI_BITRATE 12500000
5249
#define acs "ccs"
5250
#define accs
5251
#define aPART_TM4C1294NCPDT
5252
#define aTIVAWARE
5253
#define axdc_target_types__ ti/targets/std.h
5254
5255
/* Enable/Disable some test routines. If not testing that, then FALSE */
5256
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
5257
#define GEO_TEST_WIFI_TCPIP_THROUGHPUT GEO_FALSE
5258
5259
/******* Other sensors and indicators *****************/
5260
#define GEO_INDICATORS GEO_FALSE
5261
#define GEO_INDICATORS_BLINKERS GEO_FALSE
5262
#define GEO_INDICATORS_SIREN GEO_FALSE
5263
#define LOKI_PICKLE_SWITCH GEO_FALSE
5264
#define LOKI_TWEETER GEO_FALSE
5265
#define GEO_SPEAKER_DAC GEO_FALSE
5266
#define GEO_SENSOR_LIGHT GEO_FALSE
5267
#define GEO_STORAGE_LIGHT GEO_FALSE
5268
#define GEO_PPS_LIGHT GEO_FALSE
5269
#define GEO_WIFI_LIGHT GEO_FALSE
5270
#define GEO_GPS_LIGHT GEO_FALSE
5271
#define GEO_POWER_INDICATOR_LIGHT GEO_FALSE
5272
5273
/* Priorities */
5274
#define HTTP_DAEMON_PRIORITY 4
5275
#define MQTT_DAEMON_PRIORITY 4
5276
#define MAIN_TASK_STARTUP_PRIORITY
5277
#define MAIN_TASK_LOOP_PRIORITY
5278
#define WIFI_STARTUP_TASK_PRIORITY 9
5279
#define SYS_MGMT_TASK_PRIORITY 1
5280
#define GEO_STANDARD_UART_TASK_PRIORITY 8
5281
#define WIFI_DAEMON_TASK_PRIORITY 10
5282
5283
5284
#endif
5285
5286
/************************************************************************************/
5287
/* Godzilla */
5288
/************************************************************************************/
5289
#if GEO_APP_GODZILLA == GEO_TRUE
5290
#define GEO_APP_EMBEDDED_PROGRAM_NAME "GODZILLA"
5291
#define GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME "Godzilla"
5292
5293
5294
5295
#ifndef linux
5296
#error Godzilla is linux only.
5297
#endif
5298
/*** Primary elements **/
5299
#define BOARD_TIVA_LAUNCHPAD GEO_FALSE
5300
#define BOARD_PACTRON_1 GEO_FALSE
5301
#define BOARD_UNIFIED_03 GEO_FALSE
5302
#define BOARD_LINUX_SITARA GEO_TRUE
5303
5304
#define EMULATE_MFAM_SENSOR GEO_FALSE
5305
#define EMULATE_862_SENSOR GEO_FALSE
5306
#define MFAM_MODULE GEO_FALSE
5307
#define GEO_SERIAL_CESIUM_MAG GEO_FALSE
5308
5309
#define GEO_SDCARD GEO_FALSE
5310
#define GEO_USB_STORAGE GEO_FALSE
5311
//#define GEO_PRIMARY_STORAGE GEO_USB
5312
5313
#define GPS_ENABLED GEO_FALSE
5314
#define GEO_MQTT GEO_FALSE
5315
#define GEO_PPS_EVENTS GEO_FALSE
5316
5317
#define GEO_SCHEMA_VERSION 5
5318
#error verify that this is the correct schema version
5319
5320
5321
#define GEO_APP_NAME "godzilla"
5322
#define GEO_SSID "Tezzeret"
5323
#define GEO_BOARD_VERSION GEO_SYSTEM_BOARD_CLASS_SITARA
5324
5325
5326
5327
/*********************************************************************/
5328
/* In order to debug the 864, sometimes we want to have text files */
5329
/* rather than the binary files expected by the Android client. */
5330
/* When debugging in this fashion, using a browser use GEO_TRUE */
5331
/* Use GEO_FALSE for using the Android app. */
5332
/*********************************************************************/
5333
#define GEO_864_DEBUG_TEXT_FILES GEO_FALSE
5334
#if GEO_864_DEBUG_TEXT_FILES == GEO_TRUE
5335
#define GEO_WRITE_TEXT_FILE_HEADERS GEO_TRUE
5336
#else
5337
#define GEO_WRITE_BINARY_FILE_HEADERS GEO_TRUE
5338
#endif
5339
#define GEO_APP_MAJOR_VERSION "0"
5340
#define GEO_APP_MINOR_VERSION "1"
5341
#define GEO_CM221_MAG_DATA GEO_TRUE
5342
// Single survey true only for testing.
5343
#define GEO_SINGLE_SURVEY GEO_TRUE
5344
#define GEO_FILE_SYNCH_EVENTS GEO_TRUE
5345
5346
#if EMULATE_862_SENSOR == GEO_TRUE
5347
#define EMULATE_862_RATE 10
5348
#endif
5349
5350
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
5351
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200000
5352
#endif
5353
#if (GEO_SERIAL_CESIUM_MAG == GEO_TRUE) || (EMULATE_862_SENSOR == GEO_TRUE)
5354
#define BLOCKS_PER_ACQUISITION_DATA_FILE 200
5355
#endif
5356
5357
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) || (MFAM_MODULE == GEO_TRUE)
5358
#define COUNT_MFAM_BUFFERS 2500
5359
#define COUNT_862_MAGS 0
5360
#define GM_SIZE_OF_APP_DATA_QUEUE 2950
5361
#elif GEO_SERIAL_CESIUM_MAG == GEO_TRUE
5362
#define COUNT_MFAM_BUFFERS 0
5363
#define COUNT_862_MAGS 400
5364
#define GM_SIZE_OF_APP_DATA_QUEUE 500
5365
#elif EMULATE_862_SENSOR == GEO_TRUE
5366
#define COUNT_MFAM_BUFFERS 0
5367
#define COUNT_862_MAGS 400
5368
#define GM_SIZE_OF_APP_DATA_QUEUE 500
5369
#else
5370
#define COUNT_MFAM_BUFFERS 0
5371
#define COUNT_862_MAGS 0
5372
#define GM_SIZE_OF_APP_DATA_QUEUE 1000
5373
#endif
5374
#define GEO_TCP_STREAMING GEO_FALSE
5375
#define GEO_LEGACY_MAG_SERIAL_OUT GEO_FALSE
5376
#define ALLOW_DELETE_DATA_FILES GEO_TRUE
5377
#define ALLOW_DELETE_SURVEYS GEO_TRUE
5378
#define GEO_CONFIGPROVISION_EEPROM GEO_TRUE
5379
5380
#define GEO_LOG_PPS_DATA GEO_TRUE
5381
#define GEO_TEN_HERTZ_FROM_PPS GEO_TRUE
5382
#define GEO_AUTO_START_LOGGING GEO_FALSE
5383
#define GEO_HARD_MAG_SUBSAMPLE 500
5384
5385
#define DAEMON_MAXRECORD 3
5386
5387
#define EMU_1HZ_NOT
5388
5389
#define FILE_LOGGING_ALWAYS
5390
//#define GEO_TEXT_MODE_ONLY
5391
5392
#define SDSPI_BITRATE 12500000
5393
#define aPART_TM4C1294NCPDT
5394
#define aTIVAWARE
5395
#define axdc_target_types__ ti/targets/std.h
5396
5397
/* Enable/Disable some test routines.
5398
If not testing that, then FALSE */
5399
#define GEO_TEST_SD_CARD_THROUGHPUT GEO_FALSE
5400
#define GEO_TEST_WIFI_TCPIP_THROUGHPUT GEO_FALSE
5401
5402
#define GEO_I2C GEO_TRUE
5403
5404
5405
#define GEO_864_PPS_LOCK GEO_TRUE
5406
5407
/* Wifi or Ethernet? */
5408
#define GEO_NET_3100 GEO_TRUE
5409
5410
#define NUM_HTTP_DAEMONS 5
5411
#define NUM_MQTT_DAEMONS 2
5412
#define GEO_MAX_APP_STORAGES (5)
5413
#define GEO_MAX_APP_STORAGE_MODES (5)
5414
#define GEO_MAX_APP_SENSORS (8)
5415
5416
5417
#define GEO_SCHEMA_VERSION 5
5418
#error verify that this is the correct schema version
5419
5420
#define GEO_WIFI_STATION_MODE GEO_FALSE
5421
#define GEO_MQTT_CONNECT_TO_BROKER GEO_FALSE
5422
5423
#endif
5424
/*****************************************************************/
5425
/* End of godzilla */
5426
/*****************************************************************/
5427
5428
/*******************************************************************/
5429
/* End of application definitions. */
5430
/* Remaining are expansions of meta defines,
5431
* general error checking, etc. */
5432
/*******************************************************************/
5433
5434
5435
/* Whether or not to use the TI impleentation of FatFS. Currently, not: we're
5436
* using a later version of the open-source FatFS.
5437
*/
5438
#define GEO_FATFS_TI GEO_FALSE
5439
#if (GEO_FATFS_TI == GEO_TRUE)
5440
#define Geo_f_open(a,b,c) f_open(a,b,c)
5441
#define Geo_f_stat(a,b) f_stat(a,b)
5442
#define Geo_f_unlink(a) f_unlink(a)
5443
#define Geo_f_read(a,b,c,d) f_read(a,b,c,d)
5444
#define Geo_f_lseek(a,b) f_lseek(a,b)
5445
#define Geo_f_opendir(a,b) f_opendir(a,b)
5446
#define Geo_f_mkdir(a) f_mkdir(a)
5447
#define Geo_f_write(a,b,c,d) f_write(a,b,c,d)
5448
#define Geo_f_sync(a) f_sync(a)
5449
#define Geo_f_close(a) f_close(a)
5450
#define Geo_f_readdir(a,b) f_readdir(a,b)
5451
#define Geo_f_closedir(a) f_closedir(a)
5452
#define Geo_f_mount(a,b,c) f_mount(a,b,c)
5453
#endif
5454
5455
#if GEO_NET_3100 == GEO_TRUE
5456
#define NET_SL
5457
#define GEO_WIFI_SPI
5458
#define GEO_WIFI_UART_NOT
5459
#define GEO_WIFI_HTTP GEO_TRUE
5460
#define GEO_NET_NDK GEO_FALSE
5461
#else
5462
#define GEO_NET_NDK GEO_TRUE
5463
#define GEO_ETHERNET_HTTP GEO_TRUE
5464
#define NET_NDK
5465
#endif
5466
5467
5468
#ifndef STATIC_ETHERNET_ADDRESS_DEF
5469
#define STATIC_ETHERNET_ADDRESS_DEF GEO_FALSE
5470
#endif
5471
5472
5473
#ifndef MFAM_SYS_MGMT
5474
#define MFAM_SYS_MGMT GEO_FALSE
5475
#endif
5476
5477
#if (GPS_ENABLED == GEO_TRUE) || \
5478
(GEO_SERIAL_CESIUM_MAG == GEO_TRUE) || \
5479
(GEO_CM221_MAG_DATA == GEO_TRUE)
5480
#define GEO_UARTS_ENABLED GEO_TRUE
5481
#else
5482
#define GEO_UARTS_ENABLED GEO_FALSE
5483
#endif
5484
5485
5486
#ifndef GEO_INDICATORS
5487
#define GEO_INDICATORS GEO_FALSE
5488
#endif
5489
5490
#ifndef GEO_7993_BATTERY_MONITOR
5491
#define GEO_7993_BATTERY_MONITOR GEO_FALSE
5492
#endif
5493
5494
#ifndef GEO_7998_BATTERY_MONITOR
5495
#define GEO_7998_BATTERY_MONITOR GEO_FALSE
5496
#endif
5497
5498
#ifndef GEO_4151_BATTERY_MONITOR
5499
#define GEO_4151_BATTERY_MONITOR GEO_FALSE
5500
#endif
5501
5502
#ifndef GEO_TMP75_TEMP_SENSOR
5503
#define GEO_TMP75_TEMP_SENSOR GEO_FALSE
5504
#endif
5505
5506
#ifndef GEO_SPEAKER_DAC
5507
#define GEO_SPEAKER_DAC GEO_FALSE
5508
#endif
5509
5510
#ifndef GEO_USES_APP_CONFIG_FILES
5511
#error Must specified whether the application uses config files.
5512
#else
5513
#if GEO_USES_APP_CONFIG_FILES == GEO_TRUE
5514
#ifndef GEO_CONFIG_STORAGE
5515
#error Configuration storage must be specified ("0: for SD, 1: for USB"
)
5516
#endif
5517
#endif
5518
#endif
5519
5520
#if GEO_LOG_FILES == GEO_TRUE
5521
#ifndef GEO_LOG_STORAGE
5522
#error If log files are specified, then the drive for them must be specified: "0: for SD, 1: for USB
5523
#endif
5524
#endif
5525
5526
5527
#if (GEO_4151_BATTERY_MONITOR == GEO_TRUE)||\
5528
(GEO_7998_BATTERY_MONITOR == GEO_TRUE)||\
5529
(GEO_7993_BATTERY_MONITOR == GEO_TRUE)||\
5530
(GEO_SPEAKER_DAC == GEO_TRUE)||\
5531
(GEO_TMP75_TEMP_SENSOR == GEO_TRUE)
5532
#define GEO_OFFBOARD_I2C GEO_TRUE
5533
#else
5534
#define GEO_OFFBOARD_I2C GEO_FALSE
5535
#endif
5536
5537
#ifndef USE_MAG_ARROW_HARDWARE
5538
#define USE_MAG_ARROW_HARDWARE GEO_FALSE
5539
#endif
5540
5541
#ifndef GEO_MFAM_FILTER
5542
#define GEO_MFAM_FILTER GEO_FALSE
5543
#endif
5544
5545
#ifndef GEO_MFAM_FULL_FILTER
5546
#define GEO_MFAM_FULL_FILTER GEO_FALSE
5547
#endif
5548
5549
#ifndef EMULATE_MFAM_SENSOR
5550
#define EMULATE_MFAM_SENSOR GEO_FALSE
5551
#endif
5552
5553
#ifndef GEO_SERIAL_CESIUM_MAG
5554
#define GEO_SERIAL_CESIUM_MAG GEO_NOT_RELEVANT
5555
#endif
5556
5557
#ifndef COUNT_862_MAGS
5558
#define COUNT_862_MAGS 0
5559
#endif
5560
5561
#ifndef GEO_CM221_MAG_DATA
5562
#define GEO_CM221_MAG_DATA GEO_NOT_RELEVANT
5563
#endif
5564
5565
#ifndef EMULATE_862_SENSOR
5566
#define EMULATE_862_SENSOR GEO_NOT_RELEVANT
5567
#endif
5568
5569
#ifndef MFAM_MODULE
5570
#define MFAM_MODULE GEO_FALSE
5571
#endif
5572
5573
#ifndef LOKI_TWEETER
5574
#define LOKI_TWEETER GEO_FALSE
5575
#endif
5576
5577
#ifndef GEO_MFAM_FREQUENCY_MEASURE
5578
#define GEO_MFAM_FREQUENCY_MEASURE GEO_FALSE
5579
#endif
5580
5581
/*
5582
#define FILES_PER_DIRECTORY 200
5583
#define FILES_IN_DIRECTORIES GEO_TRUE
5584
*/
5585
5586
#ifndef GEO_IS_PROVISIONING_APP
5587
#define GEO_IS_PROVISIONING_APP GEO_FALSE
5588
#endif
5589
5590
#ifndef GEO_APP_EMBEDDED_PROGRAM_NAME
5591
#error Embeddd program name must be defined.
5592
#endif
5593
5594
#ifndef GEO_APP_EMBEDDED_PROGRAM_PRETTY_NAME
5595
#error Embeddd program pretty name must be defined.
5596
#endif
5597
5598
5599
#ifndef GEO_BOARD_VERSION
5600
#error Board version must be defined.
5601
#endif
5602
5603
#ifndef GEO_I2C
5604
#error I2C must be defined.
5605
#endif
5606
5607
#ifndef HTTP_DOMAIN_NAME
5608
#error Http domain name must be defined
5609
#endif
5610
5611
#ifndef NUM_HTTP_DAEMONS
5612
#error Must define number of HTTP daemons
5613
#endif
5614
5615
#ifndef NUM_MQTT_DAEMONS
5616
#error Must define number of MQTT daemons
5617
#endif
5618
5619
#ifndef GEO_FILE_SYNCH_EVENTS
5620
#define GEO_FILE_SYNCH_EVENTS GEO_FALSE
5621
#endif
5622
5623
#ifndef GEO_ACCESS_POINT_PASSWORD
5624
#define GEO_ACCESS_POINT_PASSWORD GEO_FALSE
5625
#endif
5626
5627
#ifndef GEO_ACCESS_POINT_CHANNEL
5628
#define GEO_ACCESS_POINT_CHANNEL GEO_FALSE
5629
#endif
5630
5631
#ifndef GEO_LOG_FILES
5632
#define GEO_LOG_FILES GEO_FALSE
5633
#endif
5634
5635
#ifndef HOST_CONNECTED
5636
#define HOST_CONNECTED GEO_FALSE
5637
#endif
5638
5639
#ifndef KNOWS_HOST_TIME
5640
#define KNOWS_HOST_TIME GEO_FALSE
5641
#endif
5642
5643
#ifndef GEO_1588
5644
#define GEO_1588 GEO_FALSE
5645
#endif
5646
5647
#ifndef GEO_DYNAMIC_CFG_RECORDS_PER_FILE
5648
#define GEO_DYNAMIC_CFG_RECORDS_PER_FILE GEO_FALSE
5649
#endif
5650
5651
#ifndef GEO_STATIC_NETWORK_PROVISIONED
5652
#define GEO_STATIC_NETWORK_PROVISIONED GEO_FALSE
5653
#endif
5654
5655
#ifndef USE_LOKI_HARDWARE
5656
#define USE_LOKI_HARDWARE GEO_FALSE
5657
#endif
5658
5659
5660
#ifndef GEO_LOAD_MFAM_SAMPLE_RATE_FROM_CONFIGS
5661
#define GEO_LOAD_MFAM_SAMPLE_RATE_FROM_CONFIGS GEO_FALSE
5662
#endif
5663
5664
#ifndef EMBEDDED_DATA_STORAGE
5665
#define EMBEDDED_DATA_STORAGE GEO_TRUE
5666
#endif
5667
5668
#if EMBEDDED_DATA_STORAGE == GEO_TRUE
5669
#ifndef GEO_CACHE_LAST_FILE_INDEX
5670
#error GEO_CACHE_LAST_FILE_INDEX must be defined
5671
#endif
5672
#endif
5673
5674
#ifndef GEO_WIFI_STATION_MODE
5675
#error The application must have a wifi mode defined.
5676
#endif
5677
5678
#ifndef GEO_MQTT_CONNECT_TO_BROKER
5679
#error The application must have a choice about connecting to MQTT broker.
5680
#endif
5681
5682
#if (GEO_SDCARD == GEO_TRUE)||(GEO_USB_STORAGE == GEO_TRUE)
5683
#if EMBEDDED_DATA_STORAGE == GEO_TRUE
5684
#define GEO_DATA_STORAGE GEO_TRUE
5685
#ifndef GEO_PRIMARY_STORAGE
5686
#error You must define a primary storage type
5687
#elif GEO_PRIMARY_STORAGE == GEO_USB
5688
#elif GEO_PRIMARY_STORAGE == GEO_SD
5689
#else
5690
#error You must define a VALID primary storage type
5691
#endif
5692
#else
5693
// GOOFY GOOFY collapse this definition to embedded storage
5694
#define GEO_DATA_STORAGE GEO_FALSE
5695
#endif
5696
#else
5697
#define GEO_DATA_STORAGE GEO_FALSE
5698
#endif
5699
5700
#if (EMBEDDED_DATA_STORAGE == GEO_FALSE)&& (UNMIRRORED_STORAGE == GEO_FALSE)
5701
#define SURVEY_DATA_IS_STORED_ANYWHERE GEO_FALSE
5702
#else
5703
#define SURVEY_DATA_IS_STORED_ANYWHERE GEO_TRUE
5704
#endif
5705
5706
#ifndef GEO_SENSOR_LIGHT
5707
#error Sensor light must be defined.
5708
#endif
5709
5710
#ifndef GEO_STORAGE_LIGHT
5711
#error Storage light must be defined.
5712
#endif
5713
5714
#ifndef GEO_PPS_LIGHT
5715
#define GEO_PPS_LIGHT GEO_FALSE
5716
#endif
5717
5718
#ifndef GEO_WIFI_LIGHT
5719
#define GEO_WIFI_LIGHT GEO_FALSE
5720
#endif
5721
5722
#ifndef GEO_GPS_LIGHT
5723
#error Gps light must be defined.
5724
#endif
5725
5726
/* Check consistency in the GPS. */
5727
#if GPS_ENABLED == GEO_TRUE
5728
#if (GEO_GPS_ADAFRUIT == GEO_TRUE)\
5729
||(GEO_GPS_TALLYSMAN_5431 == GEO_TRUE)\
5730
||(GEO_GPS_SIERRA_1110 == GEO_TRUE)\
5731
||(GEO_GPS_ZEDF9P_PPK == GEO_TRUE)\
5732
||(GEO_GPS_ZEDF9P == GEO_TRUE)
5733
#else
5734
#error If the GPS is enabled, then at least one real GPS must be chosen.
5735
#endif
5736
#endif
5737
5738
#if MFAM_MODULE == GEO_TRUE
5739
#ifndef MFAM_WAIT_FOR_QUIET_SPI
5740
#error If the MFAM is enabled, then a choice whether to wait for quiet spi must be enabled.
5741
#endif
5742
#endif
5743
5744
#if EMBEDDED_DATA_STORAGE == GEO_TRUE
5745
#ifndef FILES_PER_DIRECTORY
5746
#error FILES_PER_DIRECTORY must be defined.
5747
#endif
5748
#ifndef FILES_IN_DIRECTORIES
5749
#error FILES_IN_DIRECTORIES must be defined.
5750
#endif
5751
#endif
5752
5753
#ifndef UNMIRRORED_STORAGE
5754
#define UNMIRRORED_STORAGE GEO_FALSE
5755
#endif
5756
5757
#if ((GEO_APP_MAGEX == GEO_TRUE)||(GEO_APP_TRANQUILITY == GEO_TRUE)||(GEO_APP_AQUARIUS == GEO_TRUE)||(GEO_APP_INTREPID == GEO_TRUE)||(GEO_APP_KLOKI == GEO_TRUE))
5758
#define LOKI_HARDWARE_CLASS GEO_TRUE
5759
#else
5760
#define LOKI_HARDWARE_CLASS GEO_FALSE
5761
#endif
5762
5763
5764
#if (GEO_APP_G864 == GEO_TRUE) ||(LOKI_HARDWARE_CLASS == GEO_TRUE)||(GEO_APP_SERENITY == GEO_TRUE)
5765
#define GEO_G864_TYPE_APP GEO_TRUE
5766
#else
5767
#define GEO_G864_TYPE_APP GEO_FALSE
5768
#endif
5769
5770
#if (UNMIRRORED_STORAGE == GEO_TRUE)|| \
5771
(EMBEDDED_DATA_STORAGE == GEO_TRUE)
5772
#define GEO_SURVEY_STORAGE GEO_TRUE
5773
#else
5774
#define GEO_SURVEY_STORAGE GEO_FALSE
5775
#endif
5776
5777
#ifndef GEO_TCP_STREAM_OUT
5778
#define GEO_TCP_STREAM_OUT GEO_FALSE
5779
#endif
5780
5781
#if GEO_NET_3100 == GEO_TRUE
5782
#ifndef GEO_DYNAMIC_WIFI_SSID
5783
#error Wifi systems must define whether or not WiFi SSID is dynamic
5784
#endif
5785
#endif
5786
5787
#ifndef GEO_HTTP_KEEP_ALIVE
5788
#error Systems with HTTP need to define whether or not to use http keep-alive
5789
#endif
5790
5791
5792
#ifndef LOKI_PICKLE_SWITCH
5793
#define LOKI_PICKLE_SWITCH GEO_FALSE
5794
#endif
5795
5796
#ifndef COUNT_862_MAGS
5797
#define COUNT_862_MAGS 0
5798
#endif
5799
5800
#ifndef GEO_MQTT_SYNCH_REQUESTS
5801
#define GEO_MQTT_SYNCH_REQUESTS GEO_FALSE
5802
#endif
5803
5804
#ifndef GEO_MIRRORED_MEMORY_FILE
5805
#define GEO_MIRRORED_MEMORY_FILE GEO_FALSE
5806
#endif
5807
5808
#ifndef GEO_MEMORY_STORAGE
5809
#define GEO_MEMORY_STORAGE GEO_FALSE
5810
#endif
5811
5812
#ifndef GEO_CONFIG_STATIC_IP
5813
#define GEO_CONFIG_STATIC_IP GEO_FALSE
5814
#endif
5815
5816
#ifndef GEO_DEVICE_NICKNAME
5817
#define GEO_DEVICE_NICKNAME GEO_FALSE
5818
#endif
5819
5820
5821
#ifndef GEO_SIMPLE_WIFI_ACQUISITION
5822
#define GEO_SIMPLE_WIFI_ACQUISITION GEO_FALSE
5823
#endif
5824
5825
#ifndef GEO_NETWORK_DONT_CLOSE_ON_SEND_TIMEOUTS
5826
#define GEO_NETWORK_DONT_CLOSE_ON_SEND_TIMEOUTS GEO_FALSE
5827
#endif
5828
5829
5830
5831
#ifndef GEO_ALLOW_RUN_DISCONNECTED
5832
#define GEO_ALLOW_RUN_DISCONNECTED GEO_FALSE
5833
#endif
5834
5835
#ifndef MAG_ARROW_LIGHTS
5836
#define MAG_ARROW_LIGHTS GEO_FALSE
5837
#endif
5838
5839
#ifndef NETWORK_TRACE
5840
#define NETWORK_TRACE GEO_FALSE
5841
#endif
5842
5843
#ifndef GEO_MDNS_SD
5844
#define GEO_MDNS_SD GEO_FALSE
5845
#endif
5846
5847
#ifndef GEO_STREAMING_BLOCK
5848
#define GEO_STREAMING_BLOCK GEO_FALSE
5849
#endif
5850
5851
5852
#if GEO_MDNS_SD == GEO_TRUE
5853
#ifndef GEO_MDNS_SD_SERVICE_NAME
5854
#error MDNS must include a service name
5855
#endif
5856
#ifndef GEO_MDNS_SD_SERVICE_HOST_NAME
5857
#error MDNS must include a service host name
5858
#endif
5859
#endif
5860
5861
#if (EMULATE_MFAM_SENSOR == GEO_TRUE) && (MFAM_MODULE == GEO_TRUE)
5862
#error It is not possible for emulator and MFAM module both to be true.
5863
#endif
5864
5865
#if GEO_PPS_EVENTS == GEO_TRUE
5866
#ifndef CHOOSE_PPS_DUTY_CYCLE
5867
#error Systems with PPS must also define whether or not to detect the duty cycle.
5868
#endif
5869
#endif
5870
5871
5872
#endif
5873
5874
5875
Generated by
1.9.1