-
Notifications
You must be signed in to change notification settings - Fork 2
/
ChangeLog
601 lines (486 loc) · 24.3 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
2024-03-26 gettextize <[email protected]>
* Makefile.am (SUBDIRS): Add po.
* configure.ac (AC_CONFIG_FILES): Add po/Makefile.in.
(AM_GNU_GETTEXT_VERSION): Bump to 0.21.
2018-08-29 hor <[email protected]>
* src/drivers/GliderVarioDriverBase.h (GliderVarioDriverBase):
* src/drivers/IGCReader/IGCReaderDriver.cpp (initializeStatus):
* src/drivers/IGCReader/IGCReaderDriver.h (IGCReaderDriver):
* src/main/GliderVarioDriverList.cpp (loadDriverInstance):
* src/main/GliderVarioDriverList.h (GliderVarioDriverList):
(GliderVarioDriverList::loadDriverInstance):
(IGCReaderDriver::readConfiguration):
(start):
(stop):
(IGCReaderDriver::start):
(suspend):
(IGCReaderDriver::stop):
(IGCReaderDriver::updateKalmanStatus):
WIP - Work on driver intialization and invocation
2018-08-24 hor <[email protected]>
* src\main\ProgramOptions.h: New file.
* .autotools:
* src\drivers\GliderVarioDriverBase.h (GliderVarioDriverBase.GliderVarioDriverBase):
* src\drivers\GliderVarioDriverLibBase.h (GliderVarioDriverLibBase):
* src\drivers\IGCReader\IGCReaderDriver.cpp (IGCReaderDriver::initializeStatus):
* src\drivers\IGCReader\IGCReaderDriver.h (IGCReaderDriver):
* src\drivers\IGCReader\IGCReaderLib.cpp (getNewIGCReaderInstance):
* src\drivers\IGCReader\IGCReaderLib.h (IGCReaderLib):
(IGCReaderLib::theOneAndOnly):
(IGCReaderLib):
(IGCReaderLib::IGCReaderLib):
(~IGCReaderLib):
(IGCReaderLib::addDrivers):
(IGCReaderDriver.IGCReaderDriver):
(IGCReaderDriver::start):
(IGCReaderDriver::stop):
(IGCReaderDriver::suspend):
(IGCReaderDriver::resume):
(GliderVarioDriverLibBase.getLibName):
(GliderVarioDriverBase):
(GliderVarioDriverBase.GetDriverLib):
* src\drivers\IGCReader\Makefile.am:
* src\main\GliderVarioDriverList.cpp (~GliderVarioDriverList):
* src\main\GliderVarioDriverList.h (GliderVarioDriverList):
* src\main\GliderVarioMainPriv.cpp (readOptions):
* src\main\GliderVarioMainPriv.h (GliderVarioMainPriv):
(GliderVarioMainPriv):
(GliderVarioMainPriv::GliderVarioMainPriv):
(startup):
(loadDrivers):
(loadDriver):
(GliderVarioMainPriv::startup):
(addDriver):
(GliderVarioDriverList::GliderVarioDriverList):
(GliderVarioDriverList::~GliderVarioDriverList):
(GliderVarioDriverList::addDriver):
(GliderVarioDriverList::loadDriverLibs):
(GliderVarioDriverList::loadDriverInstances):
(GliderVarioDriverList::loadDriverLib):
(GliderVarioDriverList::loadDriverInstance):
* src\Makefile.am:
Use Properties4CXX as configuration reader.
Driver interface basics done:
- Load driver libs as shared libraries/DLLs
- Driver libs self-register the drivers which they implement
- Driver instances are created with drivers.
- Resolve complex include and library dependencies
To do: Configure the driver instances, and let them do something useful.
2018-01-28 hor <hor@horUbuntu>
* src/GliderVarioMain.h: New file.
* src/main/GliderVarioMain.cpp: New file.
* src/main/Makefile.am:
Move main() functionality into class openEV::GliderVarioMain to encapsulate command line parsing and program management
in the library libopenEVMain. This allows easy direct integration into external programs
* src/openEVario.cpp
Cleanup and leave only the main function which will utilize the class openEV::GliderVarioMain to the the heavy lifting.
2018-01-21 hor <hor@horUbuntu>
* src/drivers/GliderVarioDriverBase.h (GliderVarioDriverBase):
Work on defining the abstract interface.
Add methods for configuration, and abstract interface to allow driver subclassing.
2018-01-20 hor <hor@horUbuntu>
* src/log4cxx.properties renamed to src/openEVario.logger.properties
* src/openEVario.cpp (usage):
(readOptions):
(main):
Configure logger with logger configuration file,
or with command line options when no logger configuration file is present.
2017-11-18 hor <hor@horUbuntu>
* src/drivers/GliderVarioDriverBase.h (GliderVarioDriverBase):
* src/kalman/GliderVarioDriverBase.cpp (operator <<):
(toString):
Add full loogger and doxygen support for GliderVarioDriverBase::SensorCapability
* src/kalman/GliderVarioStatus.cpp (operator <<):
Compile logger messagebuffer stream operator only when logger support is compiled in.
* src/kalman/GliderVarioStatus.h (toString):
Make GliderVarioStatus::StatusComponentIndex visible again for Doxygen.
* src/kalman/GliderVarioMeasurementVector.cpp (operator <<):
* src/kalman/GliderVarioMeasurementVector.h (toString):
Define GliderVarioMeasurementVector::MeasureComponentIndex with marco OEV_ENUM
* src/OEVCommon.h:
Define all logger macros as empty macros when no logger support is compiled in.
2017-11-03 kai_horstmann <kai_horstmann@werum1619>
* 3rdParty\apache\Makefile.am: New file.
* configure.ac:
* Makefile.am:
* src\drivers\simul\Makefile.am:
* src\kalman\Makefile.am:
* src\Makefile.am:
* src\util\Makefile.am:
Finally integrated log4cxx into autotools with --with-log4cxx option
--with-log4cxx=build will force building from the embedded sources.
omitting the option will look for a system installation of log4cxx, and if cannot find one
build from the embedded sources
2017-10-30 kai_horstmann <kai_horstmann@werum1619>
* Makefile.am:
* src\Makefile.am:
utils kalman and driver subdirectories are now subdirs in src/Makefile.am
* src\util\Makefile.am:
* src\util\GliderVarioDriverBase.cpp: New file.
declaration of the GliderVarioDriverBase::SensorCapabilityHelperObj object.
* src\OEVCommon.h:
Macro OEV_ENUM now deals correctly with explicit numbered enums.
* src\drivers\simul\Makefile.am:
* src\drivers\GliderVarioDriverBase.h
* src\drivers\sensorDriver.h:
* src\kalman\GliderVarioStatus.cpp
Cleanup the DLL export/import handling for sensor drivers.
* src\openEVario.cpp
Test streaming explicitly numbered SensorCapability enums
2017-10-29 kai_horstmann <kai_horstmann@werum1619>
* src\drivers\GliderVarioDriverBase.h (GliderVarioDriverBase):
(getSensorCapabilities):
(setSensorCapabilities):
(hasSensorCapability):
(GliderVarioDriverBase.setSensorCapabilities):
Add common functions to sensor driver base. Primarily setting and inquiring driver capabilities
* src\OEVCommon.h:
* src\kalman\GliderVarioStatus.cpp (GliderVarioStatus):
* src\kalman\GliderVarioStatus.h (GliderVarioStatus):
(openEV::GliderVarioStatus::StatusComponentIndexHelperClass::enumStrings):
(GliderVarioStatus::GliderVarioStatus):
(operator <<):
Add macro to define enums which at the same time also provides functionality to get the name
of an enum value as string, and stream an enum value
2017-10-12 kai_horstmann <kai_horstmann@werum1619>
* src\openEVario.cpp (doInternalTests):
Enable I2C tests only if the required Linux headers are available
2017-10-11 Kai Horstmann <[email protected]>
* src/openEVario.cpp (parse_opt):
(usage):
(readOptions):
Command line parsing complete. The build now supports arp, getopt_long and getopt
as command line parsers each with decreasing comfort of use.
* .cproject:
* aclocal.m4:
* configure:
* Makefile.in:
* src/drivers/simul/Makefile.in:
* src/drivers/simul/simulDriver.h:
* src/kalman/Makefile.in:
* src/Makefile.in:
* src/util/Makefile.in:
* test/src/Makefile.in:
Re-generated with autoreconf after Ubuntu upgrade.
2017-10-06 Kai Horstmann <[email protected]>
* src/openEVario.cpp
(parse_opt):
(readOptions):
Parse options with the argp program option parser
2017-10-04 hor <[email protected]>
* src/kalman/GliderVarioMeasurementVector.h:
* src/kalman/GliderVarioStatus.h:
* src/kalman/GliderVarioTransitionMatrix.h:
* src/util/RotationMatrix.h:
* test/src/GliderVarioMeasurementUpdater_test.cpp:
* test/src/GliderVarioMeasurementVector_test.cpp:
* test/src/GliderVarioStatus_test.cpp:
* test/src/GliderVarioTransitionMatrix_test.cpp:
* test/src/RotationMatrix_test.cpp:
Add EIGEN_MAKE_ALIGNED_OPERATOR_NEW macro to all classes which have
Eigen matrix members, and may be dynamically allocated with 'new'.
This macro implements a new operator which enforces correct alignment to use
vector units like NEON on ARM.
2017-10-03 Kai Horstmann <[email protected]>
* src/util/.gitignore: New file.
* src/.gitignore:
Move generated files to src/util/.gitignore
* config.h.in:
* configure.ac:
* Makefile.in:
Check available command line parsers.
Set version, URL and bug URL
Set Makefile output to be less verbose.
* src/openEVario.cpp (readOptions):
(main):
Start working on evaluating command line options.
(doInternalTests):
Move the internal ad-hoc tests here
* src/drivers/GliderVarioDriverBase.h:
* src/drivers/sensorDriver.h:
* src/drivers/simul/simulDriver.h:
* src/drivers/simul/simulMain.cpp:
Correct include names and paths
* 3rdParty/eigen/*
Upgrade Eigen from 3.2.9 to 3.3.4
* src/kalman/GliderVarioTransitionMatrix.cpp:
* src/kalman/GliderVarioTransitionMatrix.h (GliderVarioTransitionMatrix.updateStatus):
Split complex matrix multiplication and addition into separate multiplication and addition statements.
* test/src/RotationMatrix_test.cpp (RotationMatrixTest_VectorTest_Test::TestBody):
Use EXPECT_NEAR instead of EXPECT_EQ because the current Eigen library calculates the rotation matrix slighty different
than manually calculating it. Float inaccuracies. Sigh.
2017-10-02 hor <[email protected]>
Move RotationMatric and FastMath and lookup table generator into subdirectory src/utils,
and build library libopenEVUtil.la there.
Move all Kalman filter sources and headers into subdirectory src/kalman
and build libopenEVKalman.la there.
* OEVCommon.h
Contains DLL export and import macros for utils and kalman shared library
Definition of FloatType moved there.
2017-10-01 Kai Horstmann <[email protected]>
* Configure.am
* Makefile.am **/Makefile.am
* src/*.h
* dllCommon.h
Move the Kalman filter into a shared library libopenEVKalman.so as preparation of the sensor driver framework.
Define and use Macro OEV_PUBLIC and OEV_LOCAL for class, variable and member visibility out of the share library.
* src/drivers/*
Start implement the sensor driver framework as loadable shared libraries.
Rudimentary and incomplete. But a shared library for the simulation driver is already created.
2017-08-30 Kai Horstmann <[email protected]>
* src/GliderVarioMeasurementUpdater.cpp (dynamicPressureUpd):
* test/src/GliderVarioMeasurementUpdater_test.cpp (MeasurementUpdaterTest_DynamicPressure_Test.MeasurementUpdaterTest_DynamicPressure_Test):
(MeasurementUpdaterTest_DynamicPressure_Test::TestBody):
(GliderVarioMeasurementUpdater::dynamicPressureUpd):
Added final unit test for dynamic pressure
Made corrections to dynamic pressure updated based on unit test findings
2017-08-04 Kai Horstmann <[email protected]>
* src/GliderVarioMeasurementUpdater.cpp (staticPressureUpd):
* test/src/GliderVarioMeasurementUpdater_test.cpp
(MeasurementUpdaterTest_StaticPressure_Test.MeasurementUpdaterTest_StaticPressure_Test):
(MeasurementUpdaterTest_StaticPressure_Test::TestBody):
(GliderVarioMeasurementUpdater::staticPressureUpd):
Implement unit test of static pressure update, and correct update routine accordingly
2017-08-03 Kai Horstmann <[email protected]>
* src/GliderVarioStatus.cpp (operator <<):
* src/GliderVarioStatus.h:
Rewrite output operator of status vector
Implement output operator for covariance and transition matrix types
* test/src/GliderVarioMeasurementUpdater_test.cpp (MeasurementUpdaterTest):
(MeasurementUpdaterTest.MeasurementUpdaterTest):
(MeasurementUpdaterTest_Magnetometer_Test::TestBody):
Adjust initial variances, and increments of variance over time for test.
2017-08-02 Kai Horstmann <[email protected]>
* src/GliderVarioMeasurementUpdater.cpp (compassUpd):
* test/src/GliderVarioMeasurementUpdater_test.cpp (MeasurementUpdaterTest):
(MeasurementUpdaterTest.MeasurementUpdaterTest):
(MeasurementUpdaterTest_Magnetometer_Test.MeasurementUpdaterTest_Magnetometer_Test):
(MeasurementUpdaterTest_Magnetometer_Test::TestBody):
(GliderVarioMeasurementUpdater::compassUpd):
Implement unit tests for compass update.
2017-08-01 Kai Horstmann <[email protected]>
* test/src/GliderVarioMeasurementUpdater_test.cpp (MeasurementUpdaterTest):
(MeasurementUpdaterTest.MeasurementUpdaterTest):
(MeasurementUpdaterTest_Gyro_Test.MeasurementUpdaterTest_Gyro_Test):
(MeasurementUpdaterTest_Gyro_Test::TestBody):
Implement unit test for gyro update
* src/GliderVarioMeasurementUpdater.cpp (gyroUpd):
(GliderVarioMeasurementUpdater::gyroUpd):
Adjust the gyro update routine to unit test and correct bugs found by unit testing.
2017-07-28 Kai Horstmann <[email protected]>
* test/src/GliderVarioMeasurementUpdater_test.cpp (MeasurementUpdaterTest_Acceleration.MeasurementUpdaterTest_Acceleration):
(MeasurementUpdaterTest_Acceleration::TestBody):
Implement tests for Accelerations in all three dimensions
* src/GliderVarioMeasurementUpdater.cpp (GliderVarioMeasurementUpdater::accelUpd)
Adjust the acceleration update routine and correct bugs with the unit testing
2017-07-26 Kai Horstmann <[email protected]>
* test/src/GliderVarioMeasurementUpdater_test.cpp (MeasurementUpdaterTest_GPSAltitude_Test.MeasurementUpdaterTest_GPSAltitude_Test):
(MeasurementUpdaterTest_GPSAltitude_Test::TestBody):
(MeasurementUpdaterTest_GPSHeading_Test.MeasurementUpdaterTest_GPSHeading_Test):
(MeasurementUpdaterTest_GPSHeading_Test::TestBody):
(MeasurementUpdaterTest_GPSSpeed_Test.MeasurementUpdaterTest_GPSSpeed_Test):
(MeasurementUpdaterTest_GPSSpeed_Test::TestBody):
Implement tests for GPS altitude, GPS heading and GPS Speed
* src/GliderVarioMeasurementUpdater.cpp (GliderVarioMeasurementUpdater::GPSAltitudeUpd):
(GliderVarioMeasurementUpdater::GPSHeadingUpd):
(GliderVarioMeasurementUpdater::GPSSpeedUpd):
Correct bugs in the tested functions on the way
2017-07-21 Kai Horstmann <[email protected]>
* test/src/GliderVarioMeasurementUpdater_test.cpp (MeasurementUpdaterTest_Latitude_Test::TestBody):
(MeasurementUpdaterTest_Longitude_Test::TestBody):
Implement unit tests on Ladtitude and Longitude measurement updates.
2017-06-30 Kai Horstmann <[email protected]>
* src/GliderVarioStatus.cpp (GliderVarioStatus):
(GliderVarioStatus::GliderVarioStatus):
Improve comments in constructor
(operator <<):
Extend width from 13 to 15 characters per element
* src/GliderVarioTransitionMatrix.h (updateStatus):
Copy the noise covariance from old status to new status.
* test/src/GliderVarioMeasurementUpdater_test.cpp (MeasurementUpdaterTest):
(MeasurementUpdaterTest.MeasurementUpdaterTest):
(MeasurementUpdaterTest_Gravity_Test.MeasurementUpdaterTest_Gravity_Test):
(MeasurementUpdaterTest_Gravity_Test::TestBody):
(getStaticRollTimeConstant):
* src/GliderVarioMeasurementUpdater.cpp
* src/GliderVarioMeasurementUpdater.h
Implement the measurement update functions for the Kalman filter.
Implement unit test specific code that allows unit tests looking into the inner
statuses of the measurement update routines. This is not active in production code.
Add preprocessor variable ENABLE_UNIT_TESTS.
* doxygen.cfg:
* test/src/Makefile.am:
* test/src/Makefile.in:
Implement unit test specific code that allows unit tests looking into the inner
statuses of the measurement update routines. This is not active in production code.
Add preprocessor variable ENABLE_UNIT_TESTS
2016-10-01 Kai Horstmann <[email protected]>
* src/GliderVarioStatus.cpp (operator <<):
* src/GliderVarioStatus.h (GliderVarioStatus):
Added member windSpeed, and incuded in output operator.
* src/GliderVarioTransitionMatrix.cpp (calcTransitionMatrixAndStatus):
* src/GliderVarioTransitionMatrix.h (GliderVarioTransitionMatrix):
(GliderVarioTransitionMatrix::calcTransitionMatrixAndStatus):
Re-design and completion of the transition matrix to a Extended Kalman filter (EKF).
Completed calcTransitionMatrixAndStatus to propagate the new status,
and the transition matrix as approximated Jacobian for trigonometric dependencies to propagate the covariant.
2016-09-04 Kai Horstmann <[email protected]>
* src/GliderVarioStatus.cpp (~GliderVarioStatus):
* src/GliderVarioStatus.h (GliderVarioStatus):
(GliderVarioStatus::GliderVarioStatus):
(operator <<):
(GliderVarioStatus.getStatusVector_x):
(GliderVarioStatus.getSystemNoiseCovariance_Q):
(GliderVarioStatus.getErrorCovariance_P):
(GliderVarioStatus):
Add gravity and STATUS_IND_GRAVITY to the status vector.
Add process error and system noise covariances.
* src/GliderVarioTransitionMatrix.cpp (calcTransitionMatrix):
* src/GliderVarioTransitionMatrix.h (GliderVarioTransitionMatrix.GliderVarioTransitionMatrix):
(GliderVarioTransitionMatrix.updateStatus):
Remove the hand-crafted correction from updateStatus. Gravity is now properly part of the status and transition matrix.
Add propagation of the error covariance to updateStatus.
(GliderVarioTransitionMatrix::calcTransitionMatrix):
Use gravity from the status vector for vertical speed and altitude calculation.
Correct rateOfClimb.
* src/openEVario.cpp (main):
Remove early exit from main function.
Initialize and print covariance matrixes.
2016-03-29 Kai Horstmann <[email protected]>
* src/openEVario.cpp (main):
* src/RotationMatrix.h (calcPlaneVectorToWorldVector):
Corrected rotation matrix calculation.
2016-03-21 Kai Horstmann <[email protected]>
* src/GliderVarioStatus.h:
* src/RotationMatrix.h (RotationMatrix):
Moved type definition RotationMatrix3DType from class RotationMatrix globally into the namespace openEV.
2016-03-08 Kai Horstmann <[email protected]>
* .cproject:
* src/GliderVarioMeasurementMatrix.cpp (GliderVarioMeasurementMatrix):
* src/GliderVarioStatus.cpp (normalizeAngles):
* src/GliderVarioStatus.h (GliderVarioStatus):
* src/GliderVarioTransitionMatrix.cpp (calcTransitionMatrix):
* src/openEVario.cpp (main):
(GliderVarioTransitionMatrix::calcTransitionMatrix):
(GliderVarioStatus::normalizeAngles):
(operator <<):
(GliderVarioMeasurementMatrix::calcMeasurementMatrix):
remove the status component yawAngle. This was redundant with the heading component.
(GliderVarioMeasurementMatrix::GliderVarioMeasurementMatrix):
conversion from m/s (status) to knots (measurement) was totally messed up.
2016-03-06 Kai Horstmann <[email protected]>
* src/FastMath.h (FastMath):
* src/genSineTables.cpp (printSineTable):
* src/openEVario.cpp (main):
(FastMath.fastATan2):
(FastMath.fastATan2Pos):
(FastMath.fastATanRaw):
New FastMath function fastATan2 to calculate the angle from x and y components and test in main ()
2016-03-05 Kai Horstmann <[email protected]>
* doc/doxygen/html
* doc/doxygen/latex/refman.pdf
Add the current generated doxygen html and PDF documentation
2016-03-05 Kai Horstmann <[email protected]>
* m4/ax_cxx_compile_build_stdcxx_11.m4:
* .cproject:
* .project:
* aclocal.m4:
* configure.ac:
* Makefile.in:
* src/Makefile.am:
* src/Makefile.in:
Added full capability to cross compile.
genSineTables is built by the build system compiler, and run on the build system.
Autoconf/automake are not particularly well equipped for mixing native and cross compiling.
I also had to implement an own macro AX_CXX_COMPILE_BUILD_STDCXX_11 to evaluate the necessary options for the
native build system compiler to support c++11.
2016-02-14 Kai Horstmann <[email protected]>
* src/GliderVarioMeasurementMatrix.cpp: New file.
* src/GliderVarioMeasurementMatrix.h: New file.
* src/GliderVarioMeasurementMatrix_test.cpp: New file.
Calculation of measurement values from current status
* src/GliderVarioMeasurementVector.h (GliderVarioMeasurementVector):
Access to constant vector member
* src/GliderVarioTransitionMatrix.h (GliderVarioTransitionMatrix):
All parameters in Doxy comment
* src/openEVario.cpp (main):
Initial test for multiplication of status vector with measurement matrix to the measure ment vector
* src/Makefile.am:
* src/Makefile.in:
Added new source.
(GliderVarioTransitionMatrix::~GliderVarioTransitionMatrix):
(FastMath::FastMath):
(FastMath::~FastMath):
(MeasureMatrix::MeasureMatrix):
(MeasureMatrix::~MeasureMatrix):
(GliderVarioMeasurementVector::~GliderVarioMeasurementVector):
(GliderVarioStatus::~GliderVarioStatus):
(~MeasureMatrix):
(RotationMatrix::~RotationMatrix):
Removed TODO from otherwise empty constructor and destructor stubs.
2016-01-31 Kai Horstmann <[email protected]>
* src/GliderVarioMeasurementVector.cpp: New file.
* src/GliderVarioMeasurementVector.h: New file.
* src/GliderVarioMeasurementVector_test.cpp: New file.
New class GliderVarioMeasurementVector. This vector represents measurement values from the various sensors.
* .autotools:
* .cproject:
Set debug flag for invoking autotools configure.
* src/GliderVarioStatus.h (GliderVarioStatus):
* src/GliderVarioTransitionMatrix.h (GliderVarioTransitionMatrix):
Refactor NUM_ROWS to STATUS_NUM_ROWS
* src/Makefile.am:
* src/Makefile.in:
Add GliderVarioMeasurementVector.cpp
2016-01-17 Kai Horstmann <[email protected]>
* src/GliderVarioStatus.h, src/GliderVarioStatus.cpp :
Added method GliderVarioStatus::normalizeAngles
* src/GliderVarioTransitionMatrix.cpp (GliderVarioTransitionMatrix::calcTransitionMatrix):
lastStatus is constant.
Kick the GRAVITY correction out of the matrix factors. That was plain wrong
* src/GliderVarioTransitionMatrix.h
Move constant GRAVITY here from src/GliderVarioTransitionMatrix.cpp.
(GliderVarioTransitionMatrix::updateStatus):
Added method. Calculate a newStatus from the oldStatus extrapolating for a timeDiff.
Here the GRAVITY correction is applied. Gravity always pulls down in direction of Z axis in steady state.
* src/openEVario.cpp (main):
Refined tests for GliderVarioTransitionMatrix
Added tests for GliderVarioStatus::normalizeAngles.
* All
Added copying license.
The entire program is licensed under GNU GPL v2
2016-01-17 Kai Horstmann <[email protected]>
* src/GliderVarioStatus.h,
* src/GliderVarioStatus.cpp (operator <<):
Operator << for class GliderVarioStatus:
Output of the vector in one header line with names of fields, and one line
with fixed length values aligned with the header line
* src/GliderVarioTransitionMatrix.cpp (GliderVarioTransitionMatrix::calcTransitionMatrix):
Added gravity correction: -1g in Z direction (one g UP) means steady state for vertical speed, and position.
* src/openEVario.cpp (main):
Test data is a steady circle whithout acceleration along the X axis. Using the new output operator
for class GliderVarioStatus
2016-01-06 Kai Horstmann <[email protected]>
* src/GliderVarioStatus.cpp (GliderVarioStatus::GliderVarioStatus):
Constructor must set the matrix statusVector to 0.
* src/GliderVarioTransitionMatrix.cpp (GliderVarioTransitionMatrix::calcTransitionMatrix):
Cleanup.
Latitude and Longitude length is not in meters. Length in meters is considered.
Gyro bias must be subtracted.
Thermal speed is difference between absolute vertical speed and sink rate relative to the air.
* src/GliderVarioTransitionMatrix.h (GliderVarioTransitionMatrix):
Constructor must use setZero(), not zero() to set the matrix itself to zero.
* src/openEVario.cpp (main):
First tests added for transition matrix.
* src/RotationMatrix.h
Added getters for the Yaw, Pitch and Roll members.
Setters are explicitly inline.
2016-01-06 Kai Horstmann <[email protected]>
* src/GliderVarioStatus.h (GliderVarioStatus):
Refactored ground speed and wind to cartesian North and East components instead of speed and direction.
Way easier to handle in the transition matrix :)
* src/GliderVarioTransitionMatrix.cpp (GliderVarioTransitionMatrix::calcTransitionMatrix):
Completed the transition matrix. TODO: Careful code review, and tests.
* src/openEVario.cpp (main):
10 fold number of FastMath::FastSin() runs for performance test.
Changed angles in rotation matrix test.