地面站终端 App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.5 KiB

#include "ArduRoverPidConfig.h"
ArduRoverPidConfig::ArduRoverPidConfig(QWidget *parent) : AP2ConfigWidget(parent)
{
ui.setupUi(this);
nameToBoxMap["STEER2SRV_P"] = ui.steer2ServoPSpinBox;
nameToBoxMap["STEER2SRV_I"] = ui.steer2ServoISpinBox;
nameToBoxMap["STEER2SRV_D"] = ui.steer2ServoDSpinBox;
nameToBoxMap["STEER2SRV_IMAX"] = ui.steer2ServoIMAXSpinBox;
nameToBoxMap["XTRK_ANGLE_CD"] = ui.xtrackEntryAngleSpinBox;
nameToBoxMap["XTRK_GAIN_SC"] = ui.xtrackGainSpinBox;
nameToBoxMap["CRUISE_THROTTLE"] = ui.throttleCruiseSpinBox;
nameToBoxMap["THR_MIN"] = ui.throttleMinSpinBox;
nameToBoxMap["THR_MAX"] = ui.throttleMaxSpinBox;
nameToBoxMap["FS_THR_VALUE"] = ui.throttleFSSpinBox;
nameToBoxMap["HDNG2STEER_P"] = ui.heading2SteerPSpinBox;
nameToBoxMap["HDNG2STEER_I"] = ui.heading2SteerISpinBox;
nameToBoxMap["HDNG2STEER_D"] = ui.heading2SteerDSpinBox;
nameToBoxMap["HDNG2STEER_IMAX"] = ui.heading2SteerIMAXSpinBox;
nameToBoxMap["SPEED2THR_P"] = ui.speed2ThrottlePSpinBox;
nameToBoxMap["SPEED2THR_I"] = ui.speed2ThrottleISpinBox;
nameToBoxMap["SPEED2THR_D"] = ui.speed2ThrottleDSpinBox;
nameToBoxMap["SPEED2THR_IMAX"] = ui.speed2ThrottleIMAXSpinBox;
nameToBoxMap["CRUISE_SPEED"] = ui.roverCruiseSpinBox;
nameToBoxMap["SPEED_TURN_GAIN"] = ui.roverTurnSpeedSpinBox;
nameToBoxMap["SPEED_TURN_DIST"] = ui.roverTurnDistSpinBox;
nameToBoxMap["WP_RADIUS"] = ui.roverWPRadiusSpinBox;
nameToBoxMap["SONAR_TRIGGER_CM"] = ui.sonarTriggerSpinBox;
nameToBoxMap["SONAR_TURN_ANGLE"] = ui.sonarTurnAngleSpinBox;
nameToBoxMap["SONAR_TURN_TIME"] = ui.sonarTurnTimeSpinBox;
nameToBoxMap["SONAR_DEBOUNCE"] = ui.sonaeDebounceSpinBox;
}
ArduRoverPidConfig::~ArduRoverPidConfig()
{
}
void ArduRoverPidConfig::writeButtonClicked()
{
if (!m_uas)
{
return;
}
for (QMap<QString,QDoubleSpinBox*>::const_iterator i=nameToBoxMap.constBegin();i!=nameToBoxMap.constEnd();i++)
{
m_uas->getParamManager()->setParameter(1,i.key(),i.value()->value());
}
}
void ArduRoverPidConfig::refreshButtonClicked()
{
if (!m_uas)
{
return;
}
for (QMap<QString,QDoubleSpinBox*>::const_iterator i=nameToBoxMap.constBegin();i!=nameToBoxMap.constEnd();i++)
{
m_uas->getParamManager()->requestParameterUpdate(1,i.key());
}
}
void ArduRoverPidConfig::parameterChanged(int uas, int component, QString parameterName, QVariant value)
{
if (nameToBoxMap.contains(parameterName))
{
nameToBoxMap[parameterName]->setValue(value.toFloat());
}
}