Skip to content

Commit a56a6f6

Browse files
Merge pull request #23 from larus-breeze/nick_remover
Nick remover
2 parents f82044b + 5283b03 commit a56a6f6

File tree

9 files changed

+35
-49
lines changed

9 files changed

+35
-49
lines changed

NAV_Algorithms/AHRS.cpp

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ AHRS_type::AHRS_type (float sampling_time)
135135
body2nav(),
136136
euler(),
137137
slip_angle_averager( ANGLE_F_BY_FS),
138-
nick_angle_averager( ANGLE_F_BY_FS),
138+
pitch_angle_averager( ANGLE_F_BY_FS),
139139
turn_rate_averager( ANGLE_F_BY_FS),
140140
G_load_averager( G_LOAD_F_BY_FS),
141141
compass_calibration(),
@@ -186,7 +186,7 @@ AHRS_type::update_attitude ( const float3vector &acc,
186186
const float3vector &mag)
187187
{
188188
attitude.rotate (gyro[ROLL] * Ts_div_2,
189-
gyro[NICK] * Ts_div_2,
189+
gyro[PITCH] * Ts_div_2,
190190
gyro[YAW] * Ts_div_2);
191191

192192
attitude.normalize ();
@@ -202,7 +202,7 @@ AHRS_type::update_attitude ( const float3vector &acc,
202202
turn_rate_averager.respond( nav_rotation[DOWN]);
203203

204204
slip_angle_averager.respond( ATAN2( -acc[RIGHT], -acc[DOWN]));
205-
nick_angle_averager.respond( ATAN2( +acc[FRONT], -acc[DOWN]));
205+
pitch_angle_averager.respond( ATAN2( +acc[FRONT], -acc[DOWN]));
206206
G_load_averager.respond( acc.abs());
207207
magnetic_disturbance = (induction_nav_frame - expected_nav_induction).abs();
208208
}
@@ -408,20 +408,12 @@ void AHRS_type::write_calibration_into_EEPROM( void)
408408
if( !magnetic_calibration_updated)
409409
return;
410410

411-
EEPROM_initialize();
411+
lock_EEPROM( false);
412412

413-
#if 0 // todo unused, remove me some day
414-
if ( automatic_earth_field_parameters)
415-
{
416-
float inclination=ATAN2(expected_nav_induction[DOWN], expected_nav_induction[NORTH]);
417-
float declination=ATAN2(expected_nav_induction[EAST], expected_nav_induction[NORTH]);
418-
419-
write_EEPROM_value( (EEPROM_PARAMETER_ID)DECLINATION, declination);
420-
write_EEPROM_value( (EEPROM_PARAMETER_ID)INCLINATION, inclination);
421-
}
422-
#endif
423413
compass_calibration.write_into_EEPROM();
424414
magnetic_calibration_updated = false; // done ...
415+
416+
lock_EEPROM( true);
425417
}
426418

427419
void AHRS_type::handle_magnetic_calibration ( char type)

NAV_Algorithms/AHRS.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
extern float3vector nav_induction;
3939

40-
enum { ROLL, NICK, YAW};
40+
enum { ROLL, PITCH, YAW};
4141
enum { FRONT, RIGHT, BOTTOM};
4242
enum { NORTH, EAST, DOWN};
4343

@@ -155,9 +155,9 @@ class AHRS_type
155155
}
156156

157157
float
158-
getNickAngle () const
158+
getPitchAngle () const
159159
{
160-
return nick_angle_averager.get_output();
160+
return pitch_angle_averager.get_output();
161161
}
162162

163163
float get_turn_rate( void ) const
@@ -223,7 +223,7 @@ class AHRS_type
223223
float3matrix body2nav;
224224
eulerangle<ftype> euler;
225225
pt2<float,float> slip_angle_averager;
226-
pt2<float,float> nick_angle_averager;
226+
pt2<float,float> pitch_angle_averager;
227227
pt2<float,float> turn_rate_averager;
228228
pt2<float,float> G_load_averager;
229229
linear_least_square_fit<int64_t, float> mag_calibration_data_collector_right_turn[3];

NAV_Algorithms/data_structures.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ typedef struct
9090
float effective_vertical_acceleration;
9191
float turn_rate;
9292
float slip_angle;
93-
float nick_angle;
93+
float pitch_angle;
9494
float G_load;
9595
float pressure_altitude;
9696
float air_density;

NAV_Algorithms/navigator.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ void navigator_t::report_data( output_data_t &d)
131131
d.circle_mode = ahrs.get_circling_state();
132132
d.turn_rate = ahrs.get_turn_rate();
133133
d.slip_angle = ahrs.getSlipAngle();
134-
d.nick_angle = ahrs.getNickAngle();
134+
d.pitch_angle = ahrs.getPitchAngle();
135135
d.G_load = ahrs.get_G_load();
136136
d.pressure_altitude = - atmosphere.get_negative_altitude();
137137
d.magnetic_disturbance = ahrs.getMagneticDisturbance();

NAV_Algorithms/organizer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class organizer_t
5252
{
5353
quaternion<float> q;
5454
q.from_euler (configuration (SENS_TILT_ROLL),
55-
configuration (SENS_TILT_NICK),
55+
configuration (SENS_TILT_PITCH),
5656
configuration (SENS_TILT_YAW));
5757
q.get_rotation_matrix (sensor_mapping);
5858
}

NAV_Algorithms/persistent_data.cpp

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,8 @@
2929

3030
ROM persistent_data_t PERSISTENT_DATA[]=
3131
{
32-
{BOARD_ID, "Board_ID", false, 0.0f, 0}, //! Board ID Hash to avoid board confusion
33-
3432
{SENS_TILT_ROLL,"SensTilt_Roll", true, 0.0f, 0}, //! IMU Sensor tilt angle signed / degrees front right down frame
35-
{SENS_TILT_NICK,"SensTilt_Nick", true, 0.0f, 0}, //! IMU Sensor tilt angle signed
33+
{SENS_TILT_PITCH,"SensTilt_Pitch", true, 0.0f, 0}, //! IMU Sensor tilt angle signed
3634
{SENS_TILT_YAW, "SensTilt_Yaw", true, 0.0f, 0}, //! IMU Sensor tilt angle signed
3735

3836
{PITOT_OFFSET, "Pitot_Offset", false, 0.0f, 0}, //! Pitot offset signed / Pa
@@ -52,7 +50,6 @@ ROM persistent_data_t PERSISTENT_DATA[]=
5250
{VARIO_INT_TC, "Vario_Int_TC", false, 30.0f, 0}, //! Vario integrator time constant unsigned s / ( 100.0f / 65536 )
5351
{WIND_TC, "Wind_TC", false, 5.0f, 0}, //! Wind fast time constant unsigned s / ( 100.0f / 65536 )
5452
{MEAN_WIND_TC, "Mean_Wind_TC", false, 30.0f, 0}, //! Wind slow time constant unsigned s / ( 100.0f / 65536 )
55-
{VETF, "VrtclEnrgTuning", false, 1.0f, 0}, //! Vertical Energy tuning factor s / ( 1.0f / 65536 )
5653
{HORIZON, "Horizon_active", false, 1.0f, 0}, //! Horizon output is available
5754

5855
{GNSS_CONFIGURATION, "GNSS_CONFIG", false, 1.0f, 0}, //! type of GNSS system
@@ -63,17 +60,26 @@ ROM persistent_data_t PERSISTENT_DATA[]=
6360

6461
ROM unsigned PERSISTENT_DATA_ENTRIES = sizeof(PERSISTENT_DATA) / sizeof(persistent_data_t);
6562

66-
bool all_EEPROM_parameters_existing( void)
63+
void ensure_EEPROM_parameter_integrity( void)
6764
{
65+
bool EEPROM_has_been_unlocked = false;
6866
float dummy;
69-
const persistent_data_t * parameter = PERSISTENT_DATA + 1; // skip BOARD_ID
67+
const persistent_data_t * parameter = PERSISTENT_DATA;
7068
while( parameter < PERSISTENT_DATA + PERSISTENT_DATA_ENTRIES)
7169
{
72-
if( true == read_EEPROM_value( parameter->id, dummy))
73-
return false; // read error
70+
if( true == read_EEPROM_value( parameter->id, dummy)) // parameter missing
71+
{
72+
if( EEPROM_has_been_unlocked == false)
73+
{
74+
lock_EEPROM( false);
75+
EEPROM_has_been_unlocked = true;
76+
}
77+
(void) write_EEPROM_value( parameter->id, parameter->default_value);
78+
}
7479
++parameter;
7580
}
76-
return true;
81+
if( EEPROM_has_been_unlocked)
82+
lock_EEPROM( true);
7783
}
7884

7985
const persistent_data_t * find_parameter_from_ID( EEPROM_PARAMETER_ID id)
@@ -157,7 +163,7 @@ bool EEPROM_convert( EEPROM_PARAMETER_ID id, EEPROM_data_t & EEPROM_value, float
157163
break;
158164
break;
159165
case SENS_TILT_ROLL:
160-
case SENS_TILT_NICK:
166+
case SENS_TILT_PITCH:
161167
case SENS_TILT_YAW:
162168
if( read)
163169
value = (float)(EEPROM_value.i16) / 32768.0f * M_PI_F;
@@ -182,17 +188,6 @@ bool EEPROM_convert( EEPROM_PARAMETER_ID id, EEPROM_data_t & EEPROM_value, float
182188
else
183189
EEPROM_value.u16 = (uint16_t)(value * 655.36f);
184190
break;
185-
case VETF:
186-
if( read)
187-
value = (float)(EEPROM_value.u16) / 65536.0f;
188-
else
189-
{
190-
unsigned uvalue = (unsigned) round( value * 65536.0f);
191-
if( uvalue >= 65536)
192-
uvalue = 65535;
193-
EEPROM_value.u16 = (uint16_t)uvalue;
194-
}
195-
break;
196191
case EEPROM_PARAMETER_ID_END:
197192
default:
198193
value = 0.0f; // just to be sure ...

NAV_Algorithms/persistent_data.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ enum EEPROM_PARAMETER_ID
4848
BOARD_ID = 0,
4949

5050
SENS_TILT_ROLL = 1,
51-
SENS_TILT_NICK,
51+
SENS_TILT_PITCH,
5252
SENS_TILT_YAW,
5353

5454
PITOT_OFFSET=4,
@@ -68,7 +68,6 @@ enum EEPROM_PARAMETER_ID
6868
VARIO_INT_TC,
6969
WIND_TC,
7070
MEAN_WIND_TC,
71-
VETF, // VERTICAL_ENERGY_TUNING_FACTOR
7271
HORIZON,
7372

7473
GNSS_CONFIGURATION=40,
@@ -98,7 +97,7 @@ bool write_EEPROM_value( EEPROM_PARAMETER_ID id, float value);
9897
bool read_EEPROM_value( EEPROM_PARAMETER_ID id, float &value);
9998
bool lock_EEPROM( bool lockit);
10099
bool EEPROM_initialize( void);
101-
bool all_EEPROM_parameters_existing( void);
100+
void ensure_EEPROM_parameter_integrity(void);
102101

103102
extern const persistent_data_t PERSISTENT_DATA[];
104103
extern const unsigned PERSISTENT_DATA_ENTRIES;

Output_Formatter/CAN_output.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ void CAN_output ( const output_data_t &x, bool horizon_activated)
144144

145145
p.id=c_CAN_Id_Acceleration; // 0x10b
146146
p.dlc=7;
147-
p.data_sh[0] = (int16_t)(round(x.G_load * 1000.0f)); // G-Belastung mm/s^2 nach oben pos.
147+
p.data_sh[0] = (int16_t)(round(x.G_load * 1000.0f)); // G-load mm/s^2
148148
p.data_sh[1] = (int16_t)(round(x.effective_vertical_acceleration * -1000.0f)); // mm/s^2
149149
p.data_sh[2] = (int16_t)(round(x.vario_uncompensated * -1000.0f)); // mm/s
150150
p.data_sb[6] = (int8_t)(x.circle_mode);
@@ -159,7 +159,7 @@ void CAN_output ( const output_data_t &x, bool horizon_activated)
159159
p.dlc=6;
160160
p.data_sh[0] = (int16_t)(round(x.slip_angle * 1000.0f)); // slip angle in radiant from body acceleration
161161
p.data_sh[1] = (int16_t)(round(x.turn_rate * 1000.0f)); // turn rate rad/s
162-
p.data_sh[2] = (int16_t)(round(x.nick_angle * 1000.0f)); // nick angle in radiant from body acceleration
162+
p.data_sh[2] = (int16_t)(round(x.pitch_angle * 1000.0f)); // nick angle in radiant from body acceleration
163163
if( CAN_send(p, 1)) // check CAN for timeout this time
164164
system_state |= CAN_OUTPUT_ACTIVE;
165165
else

Output_Formatter/NMEA_format.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,15 +312,15 @@ void format_PLARB ( float voltage, char * &p)
312312

313313
ROM char PLARA[]="$PLARA,";
314314

315-
void format_PLARA ( float roll, float nick, float yaw, char * &p)
315+
void format_PLARA ( float roll, float pitch, float yaw, char * &p)
316316
{
317317
char * line_start = p;
318318
p = append_string( p, PLARA);
319319

320320
p = to_ascii_1_decimal( round(roll * RAD_TO_DEGREE_10), p);
321321

322322
p = append_string( p, ",");
323-
p = to_ascii_1_decimal( round(nick * RAD_TO_DEGREE_10), p);
323+
p = to_ascii_1_decimal( round(pitch * RAD_TO_DEGREE_10), p);
324324

325325
if( yaw < 0.0f)
326326
yaw += 6.2832f;

0 commit comments

Comments
 (0)