状态显示完成
This commit is contained in:
+158
-56
@@ -15,8 +15,99 @@ StatusUI::StatusUI(QWidget *parent) :
|
||||
this->setStyleSheet(stylesheet);
|
||||
file.close();
|
||||
|
||||
int id_count = 0;
|
||||
|
||||
StateGroup *mode = new StateGroup(id_count++,this);
|
||||
StateGroup *base = new StateGroup(id_count++,this);
|
||||
StateGroup *actuator = new StateGroup(id_count++,this);
|
||||
StateGroup *e_fly = new StateGroup(id_count++,this);
|
||||
StateGroup *state = new StateGroup(id_count++,this);
|
||||
StateGroup *battery = new StateGroup(id_count++,this);
|
||||
StateGroup *communication = new StateGroup(id_count++,this);
|
||||
|
||||
|
||||
install(mode,0,"飞行模式",0);
|
||||
|
||||
install(base,0,"攻角[°]",0);
|
||||
install(base,0,"侧滑角[°]",0);
|
||||
install(base,0,"滚转角[°]",0);
|
||||
install(base,0,"俯仰角[°]",0);
|
||||
install(base,0,"航迹角[°]",0);
|
||||
install(base,0,"海拔[m]",0);
|
||||
install(base,0,"表速[m/s]",0);
|
||||
install(base,0,"真空速[m/s]",0);
|
||||
install(base,0,"地速[m/s]",0);
|
||||
install(base,0,"马赫数[Ma]",0);
|
||||
install(base,0,"爬升率[m/s]",0);
|
||||
|
||||
install(actuator,0,"舵机1[°]",0);
|
||||
install(actuator,0,"舵机2[°]",0);
|
||||
install(actuator,0,"舵机3[°]",0);
|
||||
install(actuator,0,"舵机4[°]",0);
|
||||
install(actuator,0,"舵机5[°]",0);
|
||||
install(actuator,0,"舵机6[°]",0);
|
||||
install(actuator,0,"舵机7[°]",0);
|
||||
install(actuator,0,"舵机8[°]",0);
|
||||
|
||||
install(e_fly,0,"位置状态",0);
|
||||
install(e_fly,0,"高度状态",0);
|
||||
install(e_fly,0,"加速度状态",0);
|
||||
install(e_fly,0,"姿态状态",0);
|
||||
install(e_fly,0,"角速度状态",0);
|
||||
install(e_fly,0,"时间状态",0);
|
||||
install(e_fly,0,"航迹角",0);
|
||||
install(e_fly,0,"天向加速度",0);
|
||||
|
||||
install(e_fly,0,"偏航加速度",0);
|
||||
install(e_fly,0,"工作状态",0);
|
||||
install(e_fly,0,"导航模式",0);
|
||||
|
||||
install(e_fly,0,"主惯导",0);
|
||||
install(e_fly,0,"IMU状态",0);
|
||||
install(e_fly,0,"DGPS状态",0);
|
||||
|
||||
install(state,0,"脱离状态1",0);
|
||||
install(state,0,"脱离状态2",0);
|
||||
install(state,0,"点火保险",0);
|
||||
install(state,0,"加速度采集",0);
|
||||
install(state,0,"开伞状态",0);
|
||||
|
||||
install(battery,0,"飞控电压[V]",0);
|
||||
install(battery,0,"舵机电压[V]",0);
|
||||
|
||||
install(communication,0,"信号[%]",0);
|
||||
install(communication,0,"接收[B/s]",0);
|
||||
install(communication,0,"发送[B/s]",0);
|
||||
|
||||
|
||||
|
||||
|
||||
GroupList.insert(mode->ID(),mode);
|
||||
GroupList.insert(base->ID(),base);
|
||||
GroupList.insert(actuator->ID(),actuator);
|
||||
GroupList.insert(e_fly->ID(),e_fly);
|
||||
GroupList.insert(state->ID(),state);
|
||||
GroupList.insert(battery->ID(),battery);
|
||||
GroupList.insert(communication->ID(),communication);
|
||||
|
||||
if(GroupList.size() > 0)
|
||||
{
|
||||
for( QMap<int,StateGroup *>::iterator i = GroupList.begin();i != GroupList.end();i++)
|
||||
{
|
||||
StateGroup *g = i.value();
|
||||
ui->gridLayout->addWidget(g,g->ID(),0,1,1);
|
||||
}
|
||||
|
||||
|
||||
QVBoxLayout * vb = new QVBoxLayout;
|
||||
vb->addStretch();
|
||||
ui->gridLayout->addLayout(vb,GroupList.size(),0,1,1);
|
||||
}
|
||||
else
|
||||
{
|
||||
this->setFixedWidth(0);
|
||||
}
|
||||
|
||||
install(0,"www",11);
|
||||
|
||||
}
|
||||
|
||||
@@ -27,71 +118,82 @@ StatusUI::~StatusUI()
|
||||
|
||||
|
||||
|
||||
//void StatusUI::setColor(QWidget *w,state s)
|
||||
//{
|
||||
/*
|
||||
w->setProperty("state",s);
|
||||
w->style()->unpolish(w);
|
||||
w->style()->polish(w);
|
||||
*/
|
||||
//}
|
||||
|
||||
void StatusUI::setValue(QLabel *w,QString s)
|
||||
void StatusUI::setColor(int group,int index,StateWidget::state s)
|
||||
{
|
||||
w->setText(s);
|
||||
}
|
||||
|
||||
void StatusUI::install(int flag, QString name, QVariant value)
|
||||
{
|
||||
StateWidget *w = new StateWidget(flag,name,value);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
StateList.insert(name,w);
|
||||
}
|
||||
|
||||
void StatusUI::setValue(QString name,QVariant value)
|
||||
{
|
||||
if(StateList.keys().contains(name))
|
||||
if(GroupList.contains(group))
|
||||
{
|
||||
StateGroup *g = GroupList.value(group);
|
||||
|
||||
if(g)
|
||||
{
|
||||
g->setColor(index,s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void StatusUI::setServo(int index,double value)
|
||||
void StatusUI::setValue(int group, int index, QString s)
|
||||
{
|
||||
switch (index) {
|
||||
case 1:
|
||||
// ui->label_Servo_1->setText(QString::number(value,'f',0));
|
||||
break;
|
||||
case 2:
|
||||
// ui->label_Servo_2->setText(QString::number(value,'f',0));
|
||||
break;
|
||||
case 3:
|
||||
// ui->label_Servo_3->setText(QString::number(value,'f',0));
|
||||
break;
|
||||
case 4:
|
||||
// ui->label_Servo_4->setText(QString::number(value,'f',0));
|
||||
break;
|
||||
case 5:
|
||||
// ui->label_Servo_5->setText(QString::number(value,'f',0));
|
||||
break;
|
||||
case 6:
|
||||
//ui->label_Servo_6->setText(QString::number(value,'f',0));
|
||||
break;
|
||||
case 7:
|
||||
//ui->label_Servo_7->setText(QString::number(value,'f',0));
|
||||
break;
|
||||
case 8:
|
||||
//ui->label_Servo_8->setText(QString::number(value,'f',0));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
if(GroupList.contains(group))
|
||||
{
|
||||
StateGroup *g = GroupList.value(group);
|
||||
|
||||
if(g)
|
||||
{
|
||||
g->setValue(index,s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool StatusUI::addGroup(int index)//??
|
||||
{
|
||||
bool flag = false;
|
||||
|
||||
StateGroup *group = GroupList.value(index);
|
||||
|
||||
if(GroupList.contains(index))
|
||||
{
|
||||
group = GroupList.value(index);
|
||||
}
|
||||
else
|
||||
{
|
||||
group = new StateGroup(GroupList.size(),this);
|
||||
GroupList.insert(index,group);
|
||||
|
||||
flag = true;
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void StatusUI::install(StateGroup *group,int flag, QString name, QVariant value)
|
||||
{
|
||||
StateWidget *w = new StateWidget(flag,name,value,StateWidget::state::gray,group->count());
|
||||
|
||||
group->addItem(w);
|
||||
}
|
||||
|
||||
|
||||
void StatusUI::install(int index,int flag, QString name, QVariant value)
|
||||
{
|
||||
StateGroup *group = GroupList.value(index);
|
||||
|
||||
if(GroupList.contains(index))
|
||||
{
|
||||
group = GroupList.value(index);
|
||||
}
|
||||
else
|
||||
{
|
||||
group = new StateGroup(GroupList.size(),this);
|
||||
GroupList.insert(GroupList.size(),group);
|
||||
}
|
||||
|
||||
|
||||
StateWidget *w = new StateWidget(flag,name,value,StateWidget::state::gray,group->count());
|
||||
|
||||
group->addItem(w);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user