添加DLink,用于把所有的通讯设备都聚到一起管理的一个插件
This commit is contained in:
+175
-303
@@ -14,102 +14,76 @@ Cockpit::Cockpit(QWidget *parent): QWidget(parent)
|
||||
|
||||
|
||||
//颜色初始化
|
||||
m_NormalColor = QColor("#00FF00");
|
||||
m_NoticeColor = QColor("#FF8C00");
|
||||
m_WarningColor = QColor("#FF0000");
|
||||
m_Color.NormalColor = QColor("#00FF00");
|
||||
m_Color.NoticeColor = QColor("#FF8C00");
|
||||
m_Color.WarningColor = QColor("#FF0000");
|
||||
|
||||
m_Color.GroundColor = QColor("#8B5A2B");
|
||||
m_Color.SkyColor = QColor("#5CACEE");
|
||||
|
||||
//GPS初始化
|
||||
m_GPS.fixtype = 0;
|
||||
m_GPS.svn = 0;
|
||||
m_GPS.altitude = 0;
|
||||
m_GPS.latitude = 0;
|
||||
m_GPS.longitude = 0;
|
||||
m_GPS.course = 0;
|
||||
m_GPS.speed = 0;
|
||||
m_GPS.vn = 0;
|
||||
m_GPS.ve = 0;
|
||||
m_GPS.vd = 0;
|
||||
m_Color.ForeColor = Qt::darkGray;
|
||||
m_Color.CentreLineColor = QColor("#FFFFFF");
|
||||
|
||||
//姿态初始化
|
||||
m_Attitude.ax = 0;
|
||||
m_Attitude.ay = 0;
|
||||
m_Attitude.az = 0;
|
||||
m_Color.LedColor = Qt::green;
|
||||
|
||||
m_Attitude.gx = 0;
|
||||
m_Attitude.gy = 0;
|
||||
m_Attitude.gz = 0;
|
||||
m_Color.TargetColor = QColor("#FF00FF");
|
||||
m_Color.CurrentColor = QColor("#FFFFFF");
|
||||
m_Color.StatusColor = QColor("#00FF00");
|
||||
|
||||
m_Attitude.roll = 0;
|
||||
m_Attitude.pitch = 0;
|
||||
m_Attitude.yaw = 0;
|
||||
m_Color.WColor = QColor("#000000");
|
||||
|
||||
m_Attitude.airspeed = 0;//空速
|
||||
m_Attitude.AirspeedFlag = 2;//i c t
|
||||
m_Attitude.horizontalspeed = 0;//侧滑速度
|
||||
m_Attitude.verticalspeed = 0;//爬升速度
|
||||
//状态初始化
|
||||
m_State.ax = 0;
|
||||
m_State.ay = 0;
|
||||
m_State.az = 0;
|
||||
|
||||
m_State.gx = 0;
|
||||
m_State.gy = 0;
|
||||
m_State.gz = 0;
|
||||
|
||||
m_State.roll = 0;
|
||||
m_State.pitch = 0;
|
||||
m_State.yaw = 0;
|
||||
|
||||
m_State.AOA = 0;
|
||||
|
||||
m_State.airspeed = 0;//空速
|
||||
m_State.AirspeedFlag = 2;//i c t
|
||||
m_State.horizontalspeed = 0;//侧滑速度
|
||||
m_State.verticalspeed = 0;//爬升速度
|
||||
|
||||
|
||||
m_Target.airspeed_maximun = 25;
|
||||
m_Target.airspeed_minimun = 15;
|
||||
|
||||
|
||||
m_Battery.current[0] = 0;
|
||||
m_Battery.voltage[0] = 0;
|
||||
|
||||
|
||||
m_GroundColor = QColor("#8B5A2B");
|
||||
m_SkyColor = QColor("#5CACEE");
|
||||
|
||||
m_ForeColor = Qt::darkGray;
|
||||
m_CentreLineColor =Qt::white;
|
||||
|
||||
m_LedColor = Qt::green;
|
||||
|
||||
m_TargetColor = QColor("#FF00FF");
|
||||
m_CurrentColor = QColor("#FFFFFF");
|
||||
m_StatusColor = QColor("#00FF00");
|
||||
|
||||
|
||||
m_WColor = QColor("#000000");
|
||||
|
||||
|
||||
m_SPD_HOLD = "MCP SPD";
|
||||
m_HDG_HOLD = "HDG SEL";
|
||||
m_ALT_HOLD = "ALT HOLD";
|
||||
|
||||
|
||||
//setMinimumSize(QSize(10, 10));
|
||||
//resize(600, 200);
|
||||
|
||||
//qDebug() << "here";
|
||||
|
||||
|
||||
//初始化完成后打开定时器开始计数刷新
|
||||
//UpdateTimer = new QTimer;
|
||||
UpdateTimer = new QTimer;
|
||||
|
||||
//connect(UpdateTimer,SIGNAL(timeout()),
|
||||
// this,SLOT(UpdateTimeout()));
|
||||
connect(UpdateTimer,SIGNAL(timeout()),
|
||||
this,SLOT(UpdateTimeout()));
|
||||
|
||||
//UpdateTimer->start(1000);
|
||||
UpdateTimer->start(20);//50Hz
|
||||
|
||||
}
|
||||
|
||||
Cockpit::~Cockpit()
|
||||
{
|
||||
/*
|
||||
if(UpdateTimer->isActive())
|
||||
if(UpdateTimer)
|
||||
{
|
||||
UpdateTimer->stop();
|
||||
UpdateTimer->deleteLater();
|
||||
delete UpdateTimer;
|
||||
UpdateTimer = nullptr;
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
void Cockpit::UpdateTimeout(void)
|
||||
{
|
||||
//qDebug() << "time out";
|
||||
update();
|
||||
}
|
||||
|
||||
@@ -117,90 +91,58 @@ void Cockpit::UpdateTimeout(void)
|
||||
|
||||
void Cockpit::mouseReleaseEvent(QMouseEvent *e)
|
||||
{
|
||||
qDebug() << "release" << e;
|
||||
update();
|
||||
qDebug() << "cockpit release" << e;
|
||||
}
|
||||
|
||||
void Cockpit::mousePressEvent(QMouseEvent *e)
|
||||
{
|
||||
qDebug() << "press" << e;
|
||||
update();
|
||||
qDebug() << "cockpit press" << e;
|
||||
}
|
||||
|
||||
void Cockpit::mouseDoubleClickEvent(QMouseEvent *e)
|
||||
{
|
||||
qDebug() << "double clicked" << e;
|
||||
qDebug() << "cockpit double clicked" << e;
|
||||
}
|
||||
|
||||
void Cockpit::wheelEvent(QWheelEvent *e)
|
||||
{
|
||||
//qDebug() << "wheel event" << e;
|
||||
|
||||
setRoll(m_Attitude.roll +0.1f * e->angleDelta().y()/120.0f);
|
||||
setPitch(m_Attitude.pitch +0.2f * e->angleDelta().y()/120.0f);
|
||||
|
||||
setYaw(m_Attitude.yaw +0.3f * e->angleDelta().y()/120.0f);
|
||||
|
||||
setAirSpeed(m_Attitude.airspeed +0.4f * e->angleDelta().y()/120.0f);
|
||||
setGPSAltitude(m_GPS.altitude + 0.5f * e->angleDelta().y()/120.0f);
|
||||
|
||||
m_Target.altitude += 0.6* e->angleDelta().y()/120.0f;;
|
||||
|
||||
m_Target.airspeed += 0.7f * e->angleDelta().y()/120.0f;;//0.1f * e->angleDelta().y()/120.0f;
|
||||
|
||||
m_Target.pitch += 0.1f * e->angleDelta().y()/120.0f;;
|
||||
|
||||
m_Target.yaw += 0.1f * e->angleDelta().y()/120.0f;
|
||||
|
||||
|
||||
m_Attitude.distofly += 0.1f * e->angleDelta().y()/120.0f;
|
||||
|
||||
m_Target.verticalspeed += 0.1f * e->angleDelta().y()/120.0f;
|
||||
|
||||
m_Attitude.verticalspeed += 0.2f * e->angleDelta().y()/120.0f;
|
||||
|
||||
|
||||
//qDebug() << "wheel event" << m_Attitude.roll << m_Attitude.pitch << m_Attitude.yaw << m_Target.airspeed;
|
||||
|
||||
update();
|
||||
Q_UNUSED(e);
|
||||
//update();
|
||||
}
|
||||
|
||||
void Cockpit::setPitch(double Pitch)
|
||||
{
|
||||
m_Attitude.pitch = Pitch;
|
||||
if(m_Attitude.pitch < -90)
|
||||
m_State.pitch = Pitch;
|
||||
if(m_State.pitch < -90)
|
||||
{
|
||||
m_Attitude.pitch += 180;
|
||||
m_State.pitch += 180;
|
||||
}
|
||||
else if(m_Attitude.pitch > 90)
|
||||
else if(m_State.pitch > 90)
|
||||
{
|
||||
m_Attitude.pitch -= 180;
|
||||
m_State.pitch -= 180;
|
||||
}
|
||||
update();
|
||||
}
|
||||
|
||||
void Cockpit::setRoll(double Roll)
|
||||
{
|
||||
m_Attitude.roll = Roll;
|
||||
if(m_Attitude.roll < -180)
|
||||
m_State.roll = Roll;
|
||||
if(m_State.roll < -180)
|
||||
{
|
||||
m_Attitude.roll += 360;
|
||||
m_State.roll += 360;
|
||||
}
|
||||
else if(m_Attitude.roll > 180)
|
||||
else if(m_State.roll > 180)
|
||||
{
|
||||
m_Attitude.roll -= 360;
|
||||
m_State.roll -= 360;
|
||||
}
|
||||
update();
|
||||
}
|
||||
|
||||
void Cockpit::setYaw(double Yaw)
|
||||
{
|
||||
m_Attitude.yaw = Yaw;
|
||||
if(m_Attitude.yaw < 0)
|
||||
m_State.yaw = Yaw;
|
||||
if(m_State.yaw < 0)
|
||||
{
|
||||
m_Attitude.yaw += 360;
|
||||
m_State.yaw += 360;
|
||||
}
|
||||
update();
|
||||
}
|
||||
|
||||
|
||||
@@ -213,64 +155,31 @@ void Cockpit::setAttitude(double Pitch,double Roll,double Yaw)
|
||||
|
||||
void Cockpit::setAttitudeSpeed(double PitchSpeed,double RollSpeed,double YawSpeed)
|
||||
{
|
||||
m_Attitude.gy = PitchSpeed;
|
||||
m_Attitude.gx = RollSpeed;
|
||||
m_Attitude.gz = YawSpeed;
|
||||
update();
|
||||
m_State.gy = PitchSpeed;
|
||||
m_State.gx = RollSpeed;
|
||||
m_State.gz = YawSpeed;
|
||||
}
|
||||
|
||||
void Cockpit::setGPSCourse(double Course)
|
||||
{
|
||||
m_GPS.course = Course;
|
||||
update();
|
||||
}
|
||||
|
||||
void Cockpit::setGPSSVN(int Number)
|
||||
void Cockpit::setAltitude(double Altitude)
|
||||
{
|
||||
m_GPS.svn = Number;
|
||||
update();
|
||||
}
|
||||
|
||||
void Cockpit::setGPSAltitude(double Altitude)
|
||||
{
|
||||
m_GPS.altitude = Altitude;
|
||||
update();
|
||||
}
|
||||
|
||||
void Cockpit::setGPSSpeed(double speed)
|
||||
{
|
||||
m_GPS.speed = speed;
|
||||
update();
|
||||
}
|
||||
|
||||
void Cockpit::setPressureAltitude(double Altitude)
|
||||
{
|
||||
m_Attitude.pressurealtitude = Altitude;
|
||||
update();
|
||||
m_State.altitude = Altitude;
|
||||
}
|
||||
|
||||
void Cockpit::setAirSpeed(double speed)
|
||||
{
|
||||
m_Attitude.airspeed = speed;
|
||||
update();
|
||||
}
|
||||
|
||||
void Cockpit::setVoltage(double Voltage)
|
||||
{
|
||||
m_Battery.voltage[0] = Voltage;
|
||||
update();
|
||||
m_State.airspeed = speed;
|
||||
}
|
||||
|
||||
void Cockpit::setLed(QColor LED)
|
||||
{
|
||||
m_LedColor = LED;
|
||||
update();
|
||||
m_Color.LedColor = LED;
|
||||
}
|
||||
|
||||
|
||||
void Cockpit::paintEvent(QPaintEvent *)
|
||||
{
|
||||
float scale = 2500.0f;
|
||||
qreal scale = 2500.0;
|
||||
|
||||
QPainter painter(this);
|
||||
painter.setRenderHint(QPainter::Antialiasing); /* 使用反锯齿(如果可用) */
|
||||
@@ -309,7 +218,7 @@ void Cockpit::drawLed(QPainter *painter)
|
||||
{
|
||||
painter->save();
|
||||
painter->setRenderHint(QPainter::Antialiasing);
|
||||
painter->setBrush(m_LedColor);
|
||||
painter->setBrush(m_Color.LedColor);
|
||||
painter->drawRoundedRect(-970, -970, 100, 100,50,50);
|
||||
painter->restore();
|
||||
}
|
||||
@@ -324,18 +233,18 @@ void Cockpit::drawPitch(QPainter *painter)
|
||||
QRectF whiterect(-4000,-5,8000,10);
|
||||
|
||||
painter->save();
|
||||
painter->translate(0,m_Attitude.pitch/45.0f * 1000);
|
||||
painter->translate(0,m_State.pitch/45.0 * 1000);
|
||||
|
||||
painter->setBrush(m_SkyColor);
|
||||
painter->setBrush(m_Color.SkyColor);
|
||||
painter->drawRect(bluerect);
|
||||
painter->setBrush(m_GroundColor);
|
||||
painter->setBrush(m_Color.GroundColor);
|
||||
painter->drawRect(yellowrect);
|
||||
painter->setBrush(QColor("#FFFFFF"));
|
||||
painter->drawRect(whiterect);
|
||||
|
||||
//俯仰刻度表
|
||||
float h = 1000.0f/45.0f;//单位高度
|
||||
for(int i = -15 - m_Attitude.pitch;i<=(15 - m_Attitude.pitch);i+=1)
|
||||
qreal h = 1000.0/45.0;//单位高度
|
||||
for(int i = -15 - m_State.pitch;i<=(15 - m_State.pitch);i+=1)
|
||||
{
|
||||
|
||||
QString strText = QString::number(qAbs(i)); //设置当前字体
|
||||
@@ -344,7 +253,7 @@ void Cockpit::drawPitch(QPainter *painter)
|
||||
QPen ePen;
|
||||
QFont font;
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(8);
|
||||
font.setPointSize(50);
|
||||
font.setFamily("Arial");//非衬线
|
||||
@@ -365,10 +274,6 @@ void Cockpit::drawPitch(QPainter *painter)
|
||||
{
|
||||
painter->drawLine(-70,i * h,70,i * h);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
painter->restore();
|
||||
}
|
||||
painter->restore();
|
||||
@@ -395,7 +300,7 @@ void Cockpit::drawPitch(QPainter *painter)
|
||||
|
||||
QPen pen;
|
||||
pen.setWidth(10);
|
||||
pen.setColor(m_CurrentColor);
|
||||
pen.setColor(m_Color.CurrentColor);
|
||||
painter->setPen(pen);
|
||||
painter->setBrush(QColor("#000000"));
|
||||
painter->drawPolygon(points1, 6);
|
||||
@@ -407,7 +312,7 @@ void Cockpit::drawPitch(QPainter *painter)
|
||||
//画目标值
|
||||
painter->save();
|
||||
|
||||
float tar_y = (m_Attitude.pitch - m_Target.pitch)/45.0f * 1000;
|
||||
qreal tar_y = (m_State.pitch - m_Target.pitch)/45.0 * 1000;
|
||||
|
||||
//qDebug() << "tar_y" << tar_y;
|
||||
|
||||
@@ -415,25 +320,9 @@ void Cockpit::drawPitch(QPainter *painter)
|
||||
|
||||
painter->translate(0,tar_y);
|
||||
|
||||
static const QPointF PitchPoints_L[4] = {
|
||||
QPointF(-275, 0),
|
||||
QPointF(-300, 0),
|
||||
QPointF(-300, 50),
|
||||
QPointF(-275, 50),
|
||||
};
|
||||
static const QPointF PitchPoints_R[4] = {
|
||||
QPointF( 275, 0),
|
||||
QPointF( 300, 0),
|
||||
QPointF( 300, 50),
|
||||
QPointF( 275, 50),
|
||||
};
|
||||
|
||||
pen.setWidth(10);
|
||||
pen.setColor(m_TargetColor);
|
||||
pen.setColor(m_Color.TargetColor);
|
||||
painter->setPen(pen);
|
||||
//painter->setBrush(m_TargetColor);
|
||||
//painter->drawPolygon(PitchPoints_L,4);
|
||||
//painter->drawPolygon(PitchPoints_R,4);
|
||||
painter->drawLine(-200,0,200,0);
|
||||
painter->restore();
|
||||
|
||||
@@ -447,7 +336,6 @@ void Cockpit::drawPitch(QPainter *painter)
|
||||
path.lineTo(-4000, 4000);
|
||||
//画里面边框
|
||||
path.addRoundRect(-500,-500,1000,1000,20,20);
|
||||
|
||||
//按照规则填充两个边框之间的部分
|
||||
path.setFillRule(Qt::OddEvenFill);
|
||||
painter->fillPath(path,Qt::black);
|
||||
@@ -455,8 +343,6 @@ void Cockpit::drawPitch(QPainter *painter)
|
||||
painter->restore();
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
//画姿态roll
|
||||
@@ -464,7 +350,7 @@ void Cockpit::drawRoll(QPainter *painter)
|
||||
{
|
||||
//画俯仰和滚转
|
||||
painter->save();
|
||||
painter->rotate(m_Attitude.roll);
|
||||
painter->rotate(m_State.roll);
|
||||
//画绿色W和顶部滚转
|
||||
static const QPointF W_Line[7] = {
|
||||
QPointF(-150, 0),
|
||||
@@ -480,13 +366,13 @@ void Cockpit::drawRoll(QPainter *painter)
|
||||
|
||||
pen.setCapStyle(Qt::RoundCap);
|
||||
pen.setWidth(30);
|
||||
pen.setColor(m_CentreLineColor);
|
||||
pen.setColor(m_Color.CentreLineColor);
|
||||
painter->setPen(pen);
|
||||
painter->drawPolyline(W_Line,7);
|
||||
|
||||
|
||||
pen.setWidth(10);
|
||||
pen.setColor(m_WColor);
|
||||
pen.setColor(m_Color.WColor);
|
||||
|
||||
|
||||
painter->setPen(pen);
|
||||
@@ -500,9 +386,9 @@ void Cockpit::drawRoll(QPainter *painter)
|
||||
};
|
||||
|
||||
pen.setWidth(1);
|
||||
pen.setColor(m_CurrentColor);
|
||||
pen.setColor(m_Color.CurrentColor);
|
||||
painter->setPen(pen);
|
||||
painter->setBrush(m_CurrentColor);
|
||||
painter->setBrush(m_Color.CurrentColor);
|
||||
painter->drawPolygon(points2,3);
|
||||
|
||||
|
||||
@@ -520,9 +406,9 @@ void Cockpit::drawRoll(QPainter *painter)
|
||||
};
|
||||
|
||||
pen.setWidth(1);
|
||||
pen.setColor(m_TargetColor);
|
||||
pen.setColor(m_Color.TargetColor);
|
||||
painter->setPen(pen);
|
||||
painter->setBrush(m_TargetColor);
|
||||
painter->setBrush(m_Color.TargetColor);
|
||||
painter->drawPolygon(points1,3);
|
||||
|
||||
painter->restore();
|
||||
@@ -533,7 +419,7 @@ void Cockpit::drawRollScale(QPainter *painter)
|
||||
painter->save();
|
||||
|
||||
QPen ePen;
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(10);
|
||||
QFont font;
|
||||
font.setPointSize(60);
|
||||
@@ -575,7 +461,7 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
|
||||
//画一个半透明的小方块
|
||||
painter->save();
|
||||
painter->setOpacity(0.3f);
|
||||
painter->setOpacity(0.3);
|
||||
ePen.setColor(QColor("#7A7A7A"));
|
||||
painter->setBrush(QColor("#7A7A7A"));
|
||||
painter->drawRect(0,-600,300,1200);
|
||||
@@ -587,11 +473,11 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
//画旁边的速度刻度,并显示
|
||||
painter->save();
|
||||
|
||||
painter->translate(0,1200.0f/40.0f * m_Attitude.airspeed);
|
||||
painter->translate(0,1200.0/40.0 * m_State.airspeed);
|
||||
|
||||
float h = 1200.0f/40.0f;//单位高度
|
||||
|
||||
for(int i = -21 - m_Attitude.airspeed;i<=(21 - m_Attitude.airspeed);i+=1)
|
||||
for(int i = -21 - m_State.airspeed;i<=(21 - m_State.airspeed);i+=1)
|
||||
{
|
||||
|
||||
QString strText = QString::number(-i); //设置当前字体
|
||||
@@ -599,7 +485,7 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
|
||||
QPen ePen;
|
||||
QFont font;
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(8);
|
||||
font.setPointSize(60);
|
||||
font.setWeight(QFont::ExtraLight);
|
||||
@@ -638,8 +524,8 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
painter->drawRect(275,-600,25,1200);
|
||||
|
||||
painter->setBrush(QColor("#228B22"));//画绿色
|
||||
float y_green = -1200.0f/40.0f * (m_Target.airspeed_maximun- m_Attitude.airspeed);
|
||||
float l_green = 1200.0f/40.0f * (m_Target.airspeed_maximun - m_Target.airspeed_minimun);
|
||||
float y_green = -1200.0/40.0 * (m_Target.airspeed_maximun- m_State.airspeed);
|
||||
float l_green = 1200.0/40.0 * (m_Target.airspeed_maximun - m_Target.airspeed_minimun);
|
||||
|
||||
if((y_green + l_green) > 600)
|
||||
{
|
||||
@@ -650,8 +536,8 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
painter->drawRect(275,(y_green < -600)?(-600):(y_green),25,l_green);
|
||||
|
||||
painter->setBrush(QColor("#FF0000"));//画红色
|
||||
float y_red = -1200.0f/40.0f * (m_Target.airspeed_minimun- m_Attitude.airspeed);
|
||||
float l_red = 600 + 1200.0f/40.0f * (m_Target.airspeed_minimun- m_Attitude.airspeed);
|
||||
qreal y_red = -1200.0/40.0 * (m_Target.airspeed_minimun- m_State.airspeed);
|
||||
qreal l_red = 600 + 1200.0/40.0 * (m_Target.airspeed_minimun- m_State.airspeed);
|
||||
if(y_red < 600)
|
||||
{
|
||||
if(y_red < -600)
|
||||
@@ -688,7 +574,7 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
|
||||
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(15);
|
||||
|
||||
font.setPointSize(90);
|
||||
@@ -698,24 +584,24 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
|
||||
QString DacadeText = QString::number(qAbs(int(m_Attitude.airspeed/10))); //设置十位以上
|
||||
QString UnitText = QString::number(qAbs(int(m_Attitude.airspeed)%10)); //设置个位
|
||||
QString DacadeText = QString::number(qAbs(int(m_State.airspeed/10))); //设置十位以上
|
||||
QString UnitText = QString::number(qAbs(int(m_State.airspeed)%10)); //设置个位
|
||||
|
||||
|
||||
//显示10位
|
||||
if((m_Attitude.airspeed < 0)&&(m_Attitude.airspeed > -10))
|
||||
if((m_State.airspeed < 0)&&(m_State.airspeed > -10))
|
||||
{
|
||||
painter->drawText(QRect(0,-50,150,100),Qt::AlignVCenter|Qt::AlignRight, "-" + DacadeText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,-50,150,100),Qt::AlignVCenter|Qt::AlignRight,((m_Attitude.airspeed < 0)?("-"):(" ")) + DacadeText);
|
||||
painter->drawText(QRect(0,-50,150,100),Qt::AlignVCenter|Qt::AlignRight,((m_State.airspeed < 0)?("-"):(" ")) + DacadeText);
|
||||
//qDebug() << DacadeText;
|
||||
}
|
||||
|
||||
|
||||
float Unit = m_Attitude.airspeed - int(m_Attitude.airspeed)/10 * 10;
|
||||
float Decimal = m_Attitude.airspeed - int(m_Attitude.airspeed);
|
||||
qreal Unit = m_State.airspeed - int(m_State.airspeed)/10 * 10;
|
||||
qreal Decimal = m_State.airspeed - int(m_State.airspeed);
|
||||
|
||||
//qDebug() << Unit << Decimal;
|
||||
|
||||
@@ -731,7 +617,7 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
|
||||
painter->save();
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(15);
|
||||
font.setPointSize(90);
|
||||
font.setFamily("Arial");//非衬线
|
||||
@@ -749,7 +635,7 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
//此段程序在未理解之前,请不要随意修改(负数未解决)
|
||||
switch (count) {
|
||||
case 1:
|
||||
if((Decimal >= (-0.55f))&&(Decimal <= 0.5f))
|
||||
if((Decimal >= (-0.55))&&(Decimal <= 0.5))
|
||||
{
|
||||
//qDebug() << "strText" << strText;
|
||||
if(Decimal >= 0)
|
||||
@@ -764,11 +650,11 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
//qDebug() << "strText" << strText;
|
||||
}
|
||||
}
|
||||
else if(Decimal > 0.5f)
|
||||
else if(Decimal > 0.5)
|
||||
{
|
||||
painter->drawText(QRect(0,120 - 120 * (Decimal - 0.5) ,80,120 * (Decimal - 0.5)),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
}
|
||||
else if(Decimal <= -0.5f)
|
||||
else if(Decimal <= -0.5)
|
||||
{
|
||||
painter->drawText(QRect(0,0 + 120 * (qAbs(Decimal) - 0.5) ,80,120 - 120 * (qAbs(Decimal) - 0.5)),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
//qDebug() << "3";
|
||||
@@ -778,18 +664,18 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
painter->drawText(QRect(0,0,80,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
break;
|
||||
case 3:
|
||||
if((Decimal >= -0.5f)&&(Decimal <= 0.5f))
|
||||
if((Decimal >= -0.5)&&(Decimal <= 0.5))
|
||||
{
|
||||
if((60 - 120 * qAbs(Decimal)) != 0)
|
||||
painter->drawText(QRect(0,0,80,60 - 120 * Decimal),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
else
|
||||
painter->drawText(QRect(0,0,80,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
}
|
||||
else if(Decimal > 0.5f)
|
||||
else if(Decimal > 0.5)
|
||||
{
|
||||
painter->drawText(QRect(0,0,80,120 - 120 * (Decimal - 0.5)),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
}
|
||||
else if(Decimal < -0.5f)
|
||||
else if(Decimal < -0.5)
|
||||
{
|
||||
painter->drawText(QRect(0,120 - 120 * (Decimal + 0.5) ,80,120 * (Decimal - 0.5)),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
}
|
||||
@@ -811,11 +697,11 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
//画速度目标值(紫色小箭头)
|
||||
painter->save();
|
||||
|
||||
ePen.setColor(m_TargetColor);
|
||||
ePen.setColor(m_Color.TargetColor);
|
||||
ePen.setWidth(8);
|
||||
painter->setPen(ePen);
|
||||
|
||||
float t_y = -1200.0f/40.0f * (m_Target.airspeed- m_Attitude.airspeed);
|
||||
qreal t_y = -1200.0/40.0 * (m_Target.airspeed- m_State.airspeed);
|
||||
|
||||
t_y = (t_y < -600)?(-600):((t_y>600)?(600):(t_y));//限幅
|
||||
|
||||
@@ -859,22 +745,22 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
|
||||
QString AS_flag = "I";
|
||||
|
||||
switch (m_Attitude.AirspeedFlag) {
|
||||
switch (m_State.AirspeedFlag) {
|
||||
default:
|
||||
case 0:
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"IAS " + QString::number(m_Attitude.airspeed,'f',0));
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"IAS " + QString::number(m_State.airspeed,'f',0));
|
||||
AS_flag = "I";
|
||||
ePen.setColor(m_NoticeColor);
|
||||
ePen.setColor(m_Color.NoticeColor);
|
||||
break;
|
||||
case 1:
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"CAS " + QString::number(m_Attitude.airspeed,'f',0));
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"CAS " + QString::number(m_State.airspeed,'f',0));
|
||||
AS_flag = "C";
|
||||
ePen.setColor(m_NoticeColor);
|
||||
ePen.setColor(m_Color.NoticeColor);
|
||||
break;
|
||||
case 2:
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"TAS " + QString::number(m_Attitude.airspeed,'f',0));
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"TAS " + QString::number(m_State.airspeed,'f',0));
|
||||
AS_flag = "T";
|
||||
ePen.setColor(m_NormalColor);
|
||||
ePen.setColor(m_Color.NormalColor);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -892,7 +778,7 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
//画顶部的目标值
|
||||
painter->save();
|
||||
|
||||
ePen.setColor(m_TargetColor);
|
||||
ePen.setColor(m_Color.TargetColor);
|
||||
ePen.setWidth(15);
|
||||
font.setPixelSize(100);
|
||||
font.setFamily("Arial");//非衬线
|
||||
@@ -908,7 +794,7 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
//画顶部的过载值和迎角
|
||||
painter->save();
|
||||
|
||||
ePen.setColor(m_CurrentColor);
|
||||
ePen.setColor(m_Color.CurrentColor);
|
||||
ePen.setWidth(10);
|
||||
font.setPixelSize(80);
|
||||
font.setFamily("Arial");//非衬线
|
||||
@@ -939,7 +825,7 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
QFont font;
|
||||
//画一个半透明的小方块
|
||||
painter->save();
|
||||
painter->setOpacity(0.3f);
|
||||
painter->setOpacity(0.3);
|
||||
ePen.setColor(QColor("#7A7A7A"));
|
||||
painter->setBrush(QColor("#7A7A7A"));
|
||||
painter->drawRect(0,-600,300,1200);
|
||||
@@ -948,10 +834,10 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
//画旁边的高度刻度,并显示
|
||||
painter->save();
|
||||
|
||||
painter->translate(0,1200.0f/400.0f * m_GPS.altitude);
|
||||
painter->translate(0,1200.0/400.0 * m_State.altitude);
|
||||
|
||||
float h = 1200.0f/400.0f;//单位高度
|
||||
for(int i = -210 - m_GPS.altitude;i<=(210 - m_GPS.altitude);i+=1)
|
||||
qreal h = 1200.0/400.0;//单位高度
|
||||
for(int i = -210 - m_State.altitude;i<=(210 - m_State.altitude);i+=1)
|
||||
{
|
||||
|
||||
QString strText = QString::number(-i); //设置当前字体
|
||||
@@ -959,7 +845,7 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
|
||||
QPen ePen;
|
||||
QFont font;
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(10);
|
||||
font.setPointSize(60);
|
||||
|
||||
@@ -1000,13 +886,13 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
};
|
||||
|
||||
|
||||
float h_y = -1200.0f/400.0f * (m_Target.altitude- m_GPS.altitude);
|
||||
qreal h_y = -1200.0/400.0 * (m_Target.altitude- m_State.altitude);
|
||||
|
||||
h_y = (h_y < -600)?(-600):((h_y>600)?(600):(h_y));//限幅
|
||||
|
||||
painter->translate(0,h_y);
|
||||
|
||||
ePen.setColor(m_TargetColor);
|
||||
ePen.setColor(m_Color.TargetColor);
|
||||
ePen.setWidth(8);
|
||||
painter->setPen(ePen);
|
||||
painter->drawPolygon(t_h, 7);
|
||||
@@ -1025,7 +911,7 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
|
||||
//画顶部目标值
|
||||
painter->save();
|
||||
ePen.setColor(m_TargetColor);
|
||||
ePen.setColor(m_Color.TargetColor);
|
||||
ePen.setWidth(15);
|
||||
|
||||
font.setPixelSize(100);
|
||||
@@ -1056,7 +942,7 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
painter->setBrush(QColor("#000000"));
|
||||
painter->drawRect(0,600,300,100);
|
||||
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"Hei " + QString::number(m_GPS.altitude,'f',0));
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"Hei " + QString::number(m_State.altitude,'f',0));
|
||||
|
||||
painter->restore();
|
||||
|
||||
@@ -1075,7 +961,7 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
};
|
||||
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(8);
|
||||
painter->setPen(ePen);
|
||||
|
||||
@@ -1084,25 +970,25 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
|
||||
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(10);
|
||||
font.setPointSize(90);
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
|
||||
|
||||
QString thousandText = QString::number(qAbs(int(m_GPS.altitude/1000)));//设置千位以上
|
||||
QString HundredText = QString::number(qAbs(int(m_GPS.altitude/100)%10));//设置百位
|
||||
QString DacadeText = QString::number(int(m_GPS.altitude/10)); //设置十位
|
||||
QString UnitText = QString::number(qAbs(int(m_GPS.altitude)%10)); //设置个位
|
||||
QString thousandText = QString::number(qAbs(int(m_State.altitude/1000)));//设置千位以上
|
||||
QString HundredText = QString::number(qAbs(int(m_State.altitude/100)%10));//设置百位
|
||||
QString DacadeText = QString::number(int(m_State.altitude/10)); //设置十位
|
||||
QString UnitText = QString::number(qAbs(int(m_State.altitude)%10)); //设置个位
|
||||
|
||||
|
||||
|
||||
//写千位
|
||||
if(m_GPS.altitude >= 0)
|
||||
if(m_State.altitude >= 0)
|
||||
{
|
||||
|
||||
if(int(m_GPS.altitude/1000) >= 10)
|
||||
if(int(m_State.altitude/1000) >= 10)
|
||||
{
|
||||
painter->drawText(QRect(70,-50,180,100),Qt::AlignVCenter|Qt::AlignRight, thousandText);
|
||||
}
|
||||
@@ -1111,14 +997,14 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
painter->setPen(Qt::NoPen);
|
||||
|
||||
QBrush eBrush;
|
||||
eBrush.setColor(m_StatusColor);
|
||||
eBrush.setColor(m_Color.StatusColor);
|
||||
eBrush.setStyle(Qt::SolidPattern);
|
||||
painter->setBrush(Qt::NoBrush);
|
||||
painter->setBrush(eBrush);
|
||||
painter->drawRect(105,-50,70,100);
|
||||
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(10);
|
||||
font.setPointSize(90);
|
||||
painter->setPen(ePen);
|
||||
@@ -1128,19 +1014,19 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
}
|
||||
|
||||
}
|
||||
else if(m_GPS.altitude < 0)
|
||||
else if(m_State.altitude < 0)
|
||||
{
|
||||
painter->drawText(QRect(-70,-50,310,100),Qt::AlignVCenter|Qt::AlignRight,tr("-") + thousandText);
|
||||
}
|
||||
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(10);
|
||||
font.setPointSize(70);
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
//写百位
|
||||
if(int(qAbs(m_GPS.altitude/100)) > 0)//说明有数
|
||||
if(int(qAbs(m_State.altitude/100)) > 0)//说明有数
|
||||
{
|
||||
painter->drawText(QRect(0,-50,300,100),Qt::AlignVCenter|Qt::AlignRight, HundredText);
|
||||
}
|
||||
@@ -1150,15 +1036,15 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
}
|
||||
|
||||
|
||||
float Unit = m_GPS.altitude - int(m_GPS.altitude)/100 * 100;
|
||||
float Dacade = float(int(m_GPS.altitude)%100)/10.0f;
|
||||
qreal Unit = m_State.altitude - int(m_State.altitude)/100 * 100;
|
||||
qreal Dacade = qreal(int(m_State.altitude)%100)/10.0;
|
||||
|
||||
float Decimal = m_GPS.altitude - int(m_GPS.altitude);
|
||||
qreal Decimal = m_State.altitude - int(m_State.altitude);
|
||||
//float m_Unit =qAbs(Dacade - int(Dacade));
|
||||
|
||||
|
||||
//写十个位
|
||||
// if(qAbs(m_GPS.altitude) < 100)
|
||||
// if(qAbs(m_State.altitude) < 100)
|
||||
// {
|
||||
for(int i = -1.5 - Unit;i<(1.5 - Unit);i+=1)
|
||||
{
|
||||
@@ -1168,18 +1054,18 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
|
||||
//这段不能对i进行操作,否则死机
|
||||
|
||||
if((m_GPS.altitude < 100)&&(m_GPS.altitude > (-100)))
|
||||
if((m_State.altitude < 100)&&(m_State.altitude > (-100)))
|
||||
{
|
||||
strText= QString::number(((-i < 0)?(i):(-i))); //设置当前字体
|
||||
}
|
||||
else if(m_GPS.altitude >= 50)
|
||||
else if(m_State.altitude >= 50)
|
||||
{
|
||||
if(i == 1) number = i - 100;
|
||||
else number = i;
|
||||
|
||||
strText= QString::number(((-number < 0)?(number):(-number))); //设置当前字体
|
||||
}
|
||||
else if(m_GPS.altitude <= (-50))
|
||||
else if(m_State.altitude <= (-50))
|
||||
{
|
||||
if(i == -1) number = i + 100;
|
||||
else number = i;
|
||||
@@ -1190,7 +1076,7 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
|
||||
painter->save();
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(10);
|
||||
font.setPointSize(70);
|
||||
|
||||
@@ -1320,10 +1206,10 @@ void Cockpit::drawVRate(QPainter *painter)
|
||||
painter->translate(80,0);
|
||||
|
||||
ePen.setWidth(8);
|
||||
ePen.setColor(m_CurrentColor);
|
||||
ePen.setColor(m_Color.CurrentColor);
|
||||
painter->setPen(ePen);
|
||||
|
||||
qreal cur_y = ((m_Attitude.verticalspeed<0)?(1):(-1))*log10(qAbs(m_Attitude.verticalspeed) + 1) * 500;
|
||||
qreal cur_y = ((m_State.verticalspeed<0)?(1):(-1))*log10(qAbs(m_State.verticalspeed) + 1) * 500;
|
||||
|
||||
cur_y = (cur_y < -440)?(-440):((cur_y>440)?(440):(cur_y));//位置限幅
|
||||
|
||||
@@ -1361,7 +1247,7 @@ void Cockpit::drawVRate(QPainter *painter)
|
||||
QPointF( -8, 8)
|
||||
};
|
||||
ePen.setWidth(8);
|
||||
ePen.setColor(m_TargetColor);
|
||||
ePen.setColor(m_Color.TargetColor);
|
||||
painter->setPen(ePen);
|
||||
painter->drawPolygon(Tarpoints,4);
|
||||
|
||||
@@ -1373,7 +1259,7 @@ void Cockpit::drawVRate(QPainter *painter)
|
||||
painter->translate(80,0);//+1是应为log 1= 0,偏移0的位置
|
||||
|
||||
ePen.setWidth(8);
|
||||
ePen.setColor(m_TargetColor);
|
||||
ePen.setColor(m_Color.TargetColor);
|
||||
font.setPointSize(50);
|
||||
font.setWeight(QFont::ExtraLight);
|
||||
font.setFamily("Arial");//非衬线
|
||||
@@ -1392,7 +1278,7 @@ void Cockpit::drawVRate(QPainter *painter)
|
||||
painter->translate(80,0);//+1是应为log 1= 0,偏移0的位置
|
||||
|
||||
ePen.setWidth(8);
|
||||
ePen.setColor(m_CurrentColor);
|
||||
ePen.setColor(m_Color.CurrentColor);
|
||||
font.setPointSize(50);
|
||||
font.setWeight(QFont::ExtraLight);
|
||||
font.setFamily("Arial");//非衬线
|
||||
@@ -1400,7 +1286,7 @@ void Cockpit::drawVRate(QPainter *painter)
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
//在下方显示当前值
|
||||
painter->drawText(QRect(-80,500,120,60),Qt::AlignHCenter|Qt::AlignLeft,QString::number(m_Attitude.verticalspeed,'f',(qAbs(m_Attitude.verticalspeed) < 10.0)?(1):(0)));
|
||||
painter->drawText(QRect(-80,500,120,60),Qt::AlignHCenter|Qt::AlignLeft,QString::number(m_State.verticalspeed,'f',(qAbs(m_State.verticalspeed) < 10.0)?(1):(0)));
|
||||
|
||||
painter->restore();//画当前值结束
|
||||
|
||||
@@ -1441,9 +1327,9 @@ void Cockpit::drawYawScale(QPainter *painter)
|
||||
};
|
||||
|
||||
ePen.setWidth(1);
|
||||
ePen.setColor(m_CurrentColor);
|
||||
ePen.setColor(m_Color.CurrentColor);
|
||||
painter->setPen(ePen);
|
||||
painter->setBrush(m_CurrentColor);
|
||||
painter->setBrush(m_Color.CurrentColor);
|
||||
painter->drawPolygon(Tranpoints,3);
|
||||
painter->restore();
|
||||
|
||||
@@ -1452,7 +1338,7 @@ void Cockpit::drawYawScale(QPainter *painter)
|
||||
//画顶部紫色目标值 (紫色在白色下面,并且在刻度上面,并且有一部分会重叠)
|
||||
painter->save();
|
||||
//旋转
|
||||
painter->rotate(m_Target.yaw - m_Attitude.yaw);
|
||||
painter->rotate(m_Target.yaw - m_State.yaw);
|
||||
|
||||
static const QPointF Tarpoint[8] = {
|
||||
QPointF(-40,-500),
|
||||
@@ -1466,7 +1352,7 @@ void Cockpit::drawYawScale(QPainter *painter)
|
||||
};
|
||||
|
||||
ePen.setWidth(8);
|
||||
ePen.setColor(m_TargetColor);
|
||||
ePen.setColor(m_Color.TargetColor);
|
||||
painter->setPen(ePen);
|
||||
painter->drawPolygon(Tarpoint,8);
|
||||
|
||||
@@ -1504,7 +1390,7 @@ void Cockpit::drawYawScale(QPainter *painter)
|
||||
};
|
||||
|
||||
painter->setPen(Qt::NoPen);
|
||||
painter->setBrush(m_CurrentColor);
|
||||
painter->setBrush(m_Color.CurrentColor);
|
||||
painter->drawPolygon(Planepoints,18);
|
||||
|
||||
//画横竖白色小圈圈
|
||||
@@ -1534,33 +1420,33 @@ void Cockpit::drawYawScale(QPainter *painter)
|
||||
|
||||
//画竖条
|
||||
painter->save();
|
||||
if(abs(m_Attitude.distofly) >= 10)//大于10,对数显示
|
||||
if(abs(m_State.distofly) >= 10)//大于10,对数显示
|
||||
{
|
||||
painter->translate(((m_Attitude.distofly >= 0)?(1.0f):(-1.0f))*log10(abs(m_Attitude.distofly)) * 100,0);
|
||||
painter->translate(((m_State.distofly >= 0)?(1.0):(-1.0))*log10(abs(m_State.distofly)) * 100,0);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->translate(m_Attitude.distofly * 10.0f,0);//小于10,线性 显示
|
||||
painter->translate(m_State.distofly * 10.0,0);//小于10,线性 显示
|
||||
}
|
||||
|
||||
ePen.setWidth(8);
|
||||
ePen.setColor(m_TargetColor);
|
||||
ePen.setColor(m_Color.TargetColor);
|
||||
painter->setPen(ePen);
|
||||
painter->drawLine(0,-200,0,200);
|
||||
painter->restore();//画竖条结束
|
||||
|
||||
|
||||
painter->save();//画横条开始
|
||||
if(abs(m_Attitude.distofly) >= 10)//大于10,对数显示
|
||||
if(abs(m_State.distofly) >= 10)//大于10,对数显示
|
||||
{
|
||||
painter->translate(0,((m_Attitude.distofly >= 0)?(1.0f):(-1.0f))*log10(abs(m_Attitude.distofly)) * 100);
|
||||
painter->translate(0,((m_State.distofly >= 0)?(1.0):(-1.0))*log10(abs(m_State.distofly)) * 100);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->translate(0,m_Attitude.distofly * 10.0f);//小于10,线性 显示
|
||||
painter->translate(0,m_State.distofly * 10.0);//小于10,线性 显示
|
||||
}
|
||||
ePen.setWidth(8);
|
||||
ePen.setColor(m_TargetColor);
|
||||
ePen.setColor(m_Color.TargetColor);
|
||||
painter->setPen(ePen);
|
||||
painter->drawLine(-200,0,200,0);
|
||||
painter->restore();//画横条结束
|
||||
@@ -1586,17 +1472,15 @@ void Cockpit::drawYawScale(QPainter *painter)
|
||||
painter->setBrush(Qt::black);
|
||||
painter->drawPolygon(Rectpoints,4);
|
||||
|
||||
ePen.setColor(m_CurrentColor);
|
||||
ePen.setColor(m_Color.CurrentColor);
|
||||
font.setPointSize(60);
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
painter->drawText(QRect(-90,-625,180,80),Qt::AlignCenter,QString::number(m_Attitude.yaw,'f',0));
|
||||
painter->drawText(QRect(-90,-625,180,80),Qt::AlignCenter,QString::number(m_State.yaw,'f',0));
|
||||
|
||||
painter->restore();
|
||||
|
||||
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(10);
|
||||
|
||||
font.setPointSize(60);
|
||||
@@ -1605,17 +1489,17 @@ void Cockpit::drawYawScale(QPainter *painter)
|
||||
painter->setFont(font);
|
||||
|
||||
//旋转
|
||||
painter->rotate(-m_Attitude.yaw);
|
||||
painter->rotate(-m_State.yaw);
|
||||
//画刻度
|
||||
|
||||
for(int i=0;i<72;i++)
|
||||
{
|
||||
painter->save();
|
||||
|
||||
painter->setOpacity(1.0f);
|
||||
painter->setOpacity(1.0);
|
||||
|
||||
painter->translate(0,0);
|
||||
painter->rotate(i * 5.0f);
|
||||
painter->rotate(i * 5.0);
|
||||
if((i%2) == 0)
|
||||
painter->drawLine(0,-500,0,-460);
|
||||
else
|
||||
@@ -1661,13 +1545,6 @@ void Cockpit::drawYawScale(QPainter *painter)
|
||||
|
||||
painter->restore();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
painter->restore();//画YAW结束
|
||||
}
|
||||
|
||||
@@ -1683,13 +1560,13 @@ void Cockpit::drawTopStatuts(QPainter *painter)
|
||||
|
||||
//画底层
|
||||
painter->save();
|
||||
painter->setOpacity(0.3f);
|
||||
painter->setOpacity(0.3);
|
||||
painter->setBrush(QColor("#7A7A7A"));
|
||||
|
||||
painter->drawRect(-550,0,1100,150);
|
||||
|
||||
painter->setOpacity(1);
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(10);
|
||||
painter->setPen(ePen);
|
||||
painter->drawLine(-185,0,-185,150);
|
||||
@@ -1700,7 +1577,7 @@ void Cockpit::drawTopStatuts(QPainter *painter)
|
||||
painter->save();
|
||||
|
||||
//画大字
|
||||
ePen.setColor(m_StatusColor);
|
||||
ePen.setColor(m_Color.StatusColor);
|
||||
ePen.setWidth(10);
|
||||
font.setPointSize(50);
|
||||
font.setFamily("Arial");//非衬线
|
||||
@@ -1708,17 +1585,12 @@ void Cockpit::drawTopStatuts(QPainter *painter)
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
|
||||
|
||||
//painter->drawRect(-530,10,320,80);
|
||||
//painter->drawRect(-160,10,320,80);
|
||||
//painter->drawRect( 210,10,320,80);
|
||||
|
||||
painter->drawText(QRect(-530,10,320,80),Qt::AlignCenter,m_SPD_HOLD);
|
||||
painter->drawText(QRect(-160,10,320,80),Qt::AlignCenter,m_HDG_HOLD);
|
||||
painter->drawText(QRect( 210,10,320,80),Qt::AlignCenter,m_ALT_HOLD);
|
||||
|
||||
//画小字
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setColor(m_Color.CentreLineColor);
|
||||
ePen.setWidth(5);
|
||||
font.setPointSize(30);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user