mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-30 12:38:33 -04:00
Copter: add logging for CH6 parameter tuning
Logs CH6 tuning values to a new PTUN log struct, specific to APM::Copter at this point
This commit is contained in:
parent
2baf79ee7a
commit
4311cd4e7a
@ -597,6 +597,31 @@ static void Log_Write_Baro(void)
|
|||||||
DataFlash.Log_Write_Baro(barometer);
|
DataFlash.Log_Write_Baro(barometer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct PACKED log_ParameterTuning {
|
||||||
|
LOG_PACKET_HEADER;
|
||||||
|
uint32_t time_ms;
|
||||||
|
uint8_t parameter; // parameter we are tuning, e.g. 39 is CH6_CIRCLE_RATE
|
||||||
|
float tuning_value; // normalized value used inside tuning() function
|
||||||
|
int16_t control_in; // raw tune input value
|
||||||
|
int16_t tuning_low; // tuning low end value
|
||||||
|
int16_t tuning_high; // tuning high end value
|
||||||
|
};
|
||||||
|
|
||||||
|
static void Log_Write_Parameter_Tuning(uint8_t param, float tuning_val, int16_t control_in, int16_t tune_low, int16_t tune_high)
|
||||||
|
{
|
||||||
|
struct log_ParameterTuning pkt_tune = {
|
||||||
|
LOG_PACKET_HEADER_INIT(LOG_PARAMTUNE_MSG),
|
||||||
|
time_ms : hal.scheduler->millis(),
|
||||||
|
parameter : param,
|
||||||
|
tuning_value : tuning_val,
|
||||||
|
control_in : control_in,
|
||||||
|
tuning_low : tune_low,
|
||||||
|
tuning_high : tune_high
|
||||||
|
};
|
||||||
|
|
||||||
|
DataFlash.WriteBlock(&pkt_tune, sizeof(pkt_tune));
|
||||||
|
}
|
||||||
|
|
||||||
static const struct LogStructure log_structure[] PROGMEM = {
|
static const struct LogStructure log_structure[] PROGMEM = {
|
||||||
LOG_COMMON_STRUCTURES,
|
LOG_COMMON_STRUCTURES,
|
||||||
#if AUTOTUNE_ENABLED == ENABLED
|
#if AUTOTUNE_ENABLED == ENABLED
|
||||||
@ -605,6 +630,8 @@ static const struct LogStructure log_structure[] PROGMEM = {
|
|||||||
{ LOG_AUTOTUNEDETAILS_MSG, sizeof(log_AutoTuneDetails),
|
{ LOG_AUTOTUNEDETAILS_MSG, sizeof(log_AutoTuneDetails),
|
||||||
"ATDE", "Iff", "TimeMS,Angle,Rate" },
|
"ATDE", "Iff", "TimeMS,Angle,Rate" },
|
||||||
#endif
|
#endif
|
||||||
|
{ LOG_PARAMTUNE_MSG, sizeof(log_ParameterTuning),
|
||||||
|
"PTUN", "IBfHHH", "TimeMS,Param,TunVal,CtrlIn,TunLo,TunHi" },
|
||||||
{ LOG_OPTFLOW_MSG, sizeof(log_Optflow),
|
{ LOG_OPTFLOW_MSG, sizeof(log_Optflow),
|
||||||
"OF", "IBffff", "TimeMS,Qual,flowX,flowY,bodyX,bodyY" },
|
"OF", "IBffff", "TimeMS,Qual,flowX,flowY,bodyX,bodyY" },
|
||||||
{ LOG_NAV_TUNING_MSG, sizeof(log_Nav_Tuning),
|
{ LOG_NAV_TUNING_MSG, sizeof(log_Nav_Tuning),
|
||||||
|
@ -243,6 +243,7 @@ enum FlipState {
|
|||||||
#define LOG_AUTOTUNEDETAILS_MSG 0x1A
|
#define LOG_AUTOTUNEDETAILS_MSG 0x1A
|
||||||
#define LOG_RATE_MSG 0x1D
|
#define LOG_RATE_MSG 0x1D
|
||||||
#define LOG_MOTBATT_MSG 0x1E
|
#define LOG_MOTBATT_MSG 0x1E
|
||||||
|
#define LOG_PARAMTUNE_MSG 0x1F
|
||||||
|
|
||||||
#define MASK_LOG_ATTITUDE_FAST (1<<0)
|
#define MASK_LOG_ATTITUDE_FAST (1<<0)
|
||||||
#define MASK_LOG_ATTITUDE_MED (1<<1)
|
#define MASK_LOG_ATTITUDE_MED (1<<1)
|
||||||
|
@ -17,6 +17,8 @@ static void tuning() {
|
|||||||
float tuning_value = (float)g.rc_6.control_in / 1000.0f;
|
float tuning_value = (float)g.rc_6.control_in / 1000.0f;
|
||||||
g.rc_6.set_range(g.radio_tuning_low,g.radio_tuning_high);
|
g.rc_6.set_range(g.radio_tuning_low,g.radio_tuning_high);
|
||||||
|
|
||||||
|
Log_Write_Parameter_Tuning(g.radio_tuning, tuning_value, g.rc_6.control_in, g.radio_tuning_low, g.radio_tuning_high);
|
||||||
|
|
||||||
switch(g.radio_tuning) {
|
switch(g.radio_tuning) {
|
||||||
|
|
||||||
// Roll, Pitch tuning
|
// Roll, Pitch tuning
|
||||||
|
Loading…
Reference in New Issue
Block a user