@ -362,61 +362,54 @@ void Log_Write_Cmd(byte num, struct Location *wp)
@@ -362,61 +362,54 @@ void Log_Write_Cmd(byte num, struct Location *wp)
DataFlash.WriteByte(num);
DataFlash.WriteByte(wp->id);
DataFlash.WriteByte(wp->p1);
DataFlash.WriteByte(wp->options);
DataFlash.WriteLong(wp->alt);
DataFlash.WriteLong(wp->lat);
DataFlash.WriteLong(wp->lng);
DataFlash.WriteByte(END_BYTE);
}
// Write a control tuning packet. Total length : 22 bytes
#if HIL_MODE != HIL_MODE_ATTITUDE
void Log_Write_Control_Tuning()
void Log_Write_Nav_Tuning()
{
DataFlash.WriteByte(HEAD_BYTE1);
DataFlash.WriteByte(HEAD_BYTE2);
DataFlash.WriteByte(LOG_CONTROL_TUNING_MSG);
// Control
DataFlash.WriteInt((int)(g.rc_3.control_in));
DataFlash.WriteInt((int)(g.rc_3.servo_out));
DataFlash.WriteInt((int)(g.rc_4.control_in));
DataFlash.WriteInt((int)(g.rc_4.servo_out));
DataFlash.WriteInt((int)yaw_error);
DataFlash.WriteByte(LOG_NAV_TUNING_MSG);
// Yaw mode
DataFlash.WriteByte(yaw_debug);
DataFlash.WriteInt((int)(dcm.yaw_sensor/100)); // 1
DataFlash.WriteInt((int)wp_distance); // 2
DataFlash.WriteInt((int)(target_bearing/100)); // 3
DataFlash.WriteInt((int)(nav_bearing/100)); // 4
// Gyro Rates
DataFlash.WriteInt((int)(omega.x * 1000));
DataFlash.WriteInt((int)(omega.y * 1000));
DataFlash.WriteInt((int)(omega.z * 1000));
DataFlash.WriteByte(altitude_sensor); // 5
DataFlash.WriteInt((int)sonar_alt); // 6
DataFlash.WriteInt((int)baro_alt); // 7
// Position
DataFlash.WriteInt((int)dcm.pitch_sensor);
DataFlash.WriteInt((int)dcm.roll_sensor);
DataFlash.WriteInt((int)(dcm.yaw_sensor/10));
DataFlash.WriteInt(home.alt); // 8
DataFlash.WriteInt((int)next_WP.alt); // 9
DataFlash.WriteInt((int)altitude_error); // 10
DataFlash.WriteByte(END_BYTE);
}
#endif
// Write a navigation tuning packet. Total length : 18 bytes
void Log_Write_Nav_Tuning()
void Log_Read_Nav_Tuning()
{
DataFlash.WriteByte(HEAD_BYTE1);
DataFlash.WriteByte(HEAD_BYTE2);
DataFlash.WriteByte(LOG_NAV_TUNING_MSG);
DataFlash.WriteInt((uint16_t)dcm.yaw_sensor);
DataFlash.WriteInt((int)wp_distance);
DataFlash.WriteInt((uint16_t)target_bearing);
DataFlash.WriteInt((uint16_t)nav_bearing);
DataFlash.WriteInt(altitude_error);
DataFlash.WriteInt((int)airspeed);
DataFlash.WriteInt((int)(nav_gain_scaler*1000));
DataFlash.WriteByte(END_BYTE);
// 1 2 3 4 5 6 7 8 9 10
Serial.printf_P(PSTR("NTUN, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d\n"),
DataFlash.ReadInt(), //yaw sensor
DataFlash.ReadInt(), //distance
DataFlash.ReadInt(), //target bearing
DataFlash.ReadInt(), //nav bearing
DataFlash.ReadByte(), //Alt sensor
DataFlash.ReadInt(), //Sonar
DataFlash.ReadInt(), //Baro
DataFlash.ReadInt(), //home.alt
DataFlash.ReadInt(), //Next_alt
DataFlash.ReadInt()); //Alt Error
}
// Write a mode packet. Total length : 5 bytes
void Log_Write_Mode(byte mode)
{
@ -428,24 +421,48 @@ void Log_Write_Mode(byte mode)
@@ -428,24 +421,48 @@ void Log_Write_Mode(byte mode)
}
// Write an GPS packet. Total length : 30 bytes
void Log_Write_GPS( long log_Time, long log_Lattitude, long log_Longitude, long log_mix_alt, long log_gps_alt,
long log_Ground_Speed, long log_Ground_Course, byte log_Fix, byte log_NumSats)
void Log_Write_GPS()
{
DataFlash.WriteByte(HEAD_BYTE1);
DataFlash.WriteByte(HEAD_BYTE2);
DataFlash.WriteByte(LOG_GPS_MSG);
DataFlash.WriteLong(log_Time);
DataFlash.WriteByte(log_Fix);
DataFlash.WriteByte(log_NumSats);
DataFlash.WriteLong(log_Lattitude);
DataFlash.WriteLong(log_Longitude);
DataFlash.WriteLong(log_mix_alt);
DataFlash.WriteLong(log_gps_alt);
DataFlash.WriteLong(log_Ground_Speed);
DataFlash.WriteLong(log_Ground_Course);
DataFlash.WriteLong(g_gps->time); // 1
DataFlash.WriteByte(g_gps->fix); // 2
DataFlash.WriteByte(g_gps->num_sats); // 3
DataFlash.WriteLong(current_loc.lat); // 4
DataFlash.WriteLong(current_loc.lng); // 5
DataFlash.WriteLong(g_gps->altitude); // 6
DataFlash.WriteLong(current_loc.alt); // 7
DataFlash.WriteInt(g_gps->ground_speed); // 8
DataFlash.WriteInt((int)(g_gps->ground_course/100)); // 9
DataFlash.WriteByte(END_BYTE);
}
// Read a GPS packet
void Log_Read_GPS()
{ // 1 2 3 4 5 6 7 8 9
// GPS, t, 1, 8, 37.7659070, -122.4329400, 57.0500, 58.1400, 658.8400, -11636846.0000
// 1 2 3 4 5 6 7 8 9
Serial.printf_P(PSTR("GPS, %ld, %d, %d, %4.7f, %4.7f, %4.4f, %4.4f, %4.4f, %4.4f\n"),
DataFlash.ReadLong(), // 1 time
(int)DataFlash.ReadByte(), // 2 fix
(int)DataFlash.ReadByte(), // 3 sats
(float)DataFlash.ReadLong() / t7, // 4 lat
(float)DataFlash.ReadLong() / t7, // 5 lon
(float)DataFlash.ReadLong() / 100.0, // 6 gps alt
(float)DataFlash.ReadLong() / 100.0, // 7 sensor alt
(float)DataFlash.ReadInt() / 100.0, // 8 ground speed
(float)DataFlash.ReadInt()); // 9 ground course
}
// Write an raw accel/gyro data packet. Total length : 28 bytes
#if HIL_MODE != HIL_MODE_ATTITUDE
void Log_Write_Raw()
@ -491,10 +508,47 @@ void Log_Read_Current()
@@ -491,10 +508,47 @@ void Log_Read_Current()
DataFlash.ReadInt());
}
// Write a control tuning packet. Total length : 22 bytes
#if HIL_MODE != HIL_MODE_ATTITUDE
void Log_Write_Control_Tuning()
{
DataFlash.WriteByte(HEAD_BYTE1);
DataFlash.WriteByte(HEAD_BYTE2);
DataFlash.WriteByte(LOG_CONTROL_TUNING_MSG);
// Control
DataFlash.WriteInt((int)(g.rc_3.control_in));
DataFlash.WriteInt((int)(g.rc_3.servo_out));
DataFlash.WriteInt((int)(g.rc_4.control_in));
DataFlash.WriteInt((int)(g.rc_4.servo_out));
DataFlash.WriteInt((int)yaw_error);
// Yaw mode
DataFlash.WriteByte(yaw_debug);
// Gyro Rates
DataFlash.WriteInt((int)(omega.x * 1000));
DataFlash.WriteInt((int)(omega.y * 1000));
DataFlash.WriteInt((int)(omega.z * 1000));
DataFlash.WriteInt((int)g.throttle_cruise);
DataFlash.WriteInt((int)g.pid_baro_throttle.get_integrator());
DataFlash.WriteInt((int)g.pid_sonar_throttle.get_integrator());
// Position
//DataFlash.WriteInt((int)dcm.pitch_sensor);
//DataFlash.WriteInt((int)dcm.roll_sensor);
//DataFlash.WriteInt((int)(dcm.yaw_sensor/10));
DataFlash.WriteByte(END_BYTE);
}
#endif
// Read an control tuning packet
void Log_Read_Control_Tuning()
{
Serial.printf_P(PSTR("CTUN, %d, %d, %d, %d, %d, %d, %1.4f, %1.4f, %1.4f, %d, %d, %ld\n"),
Serial.printf_P(PSTR("CTUN, %d, %d, %d, %d, %d, %d, %1.4f, %1.4f, %1.4f, %d, %d, %d\n"),
// Control
DataFlash.ReadInt(),
DataFlash.ReadInt(),
@ -512,24 +566,17 @@ void Log_Read_Control_Tuning()
@@ -512,24 +566,17 @@ void Log_Read_Control_Tuning()
(float)DataFlash.ReadInt() / 1000.0,
// Position
//DataFlash.ReadInt(),
//DataFlash.ReadInt(),
//(long)DataFlash.ReadInt() * 10);
// Alt Hold
DataFlash.ReadInt(),
DataFlash.ReadInt(),
(long)DataFlash.ReadInt() * 10);
DataFlash.ReadInt());
}
// Read a nav tuning packet
void Log_Read_Nav_Tuning()
{
Serial.printf_P(PSTR("NTUN: %4.4f, %d, %4.4f, %4.4f, %4.4f, %4.4f, %4.4f,\n"),
(float)((uint16_t)DataFlash.ReadInt())/100.0,
DataFlash.ReadInt(),
(float)((uint16_t)DataFlash.ReadInt())/100.0,
(float)((uint16_t)DataFlash.ReadInt())/100.0,
(float)DataFlash.ReadInt()/100.0,
(float)DataFlash.ReadInt()/100.0,
(float)DataFlash.ReadInt()/1000.0);
}
// Read a performance packet
void Log_Read_Performance()
@ -560,12 +607,12 @@ void Log_Read_Cmd()
@@ -560,12 +607,12 @@ void Log_Read_Cmd()
long logvarl;
Serial.printf_P(PSTR("CMD:"));
for(int i = 1; i < 4; i++) {
for(int i = 1; i <= 4; i++) {
logvarb = DataFlash.ReadByte();
Serial.print(logvarb, DEC);
Serial.print(comma);
}
for(int i = 1; i < 4 ; i++) {
for(int i = 1; i <= 3 ; i++) {
logvarl = DataFlash.ReadLong();
Serial.print(logvarl, DEC);
Serial.print(comma);
@ -589,22 +636,6 @@ void Log_Read_Mode()
@@ -589,22 +636,6 @@ void Log_Read_Mode()
Serial.println(flight_mode_strings[DataFlash.ReadByte()]);
}
// Read a GPS packet
void Log_Read_GPS()
{
Serial.printf_P(PSTR("GPS: %ld, %d, %d, %4.7f, %4.7f, %4.4f, %4.4f, %4.4f, %4.4f\n"),
DataFlash.ReadLong(),
(int)DataFlash.ReadByte(),
(int)DataFlash.ReadByte(),
(float)DataFlash.ReadLong() / t7,
(float)DataFlash.ReadLong() / t7,
(float)DataFlash.ReadLong() / 100.0,
(float)DataFlash.ReadLong() / 100.0,
(float)DataFlash.ReadLong() / 100.0,
(float)DataFlash.ReadLong() / 100.0);
}
// Read a raw accel/gyro packet
void Log_Read_Raw()
{