状态显示完成

This commit is contained in:
hm
2021-04-18 16:29:56 +08:00
parent a29cb30b61
commit aaf522bb24
10 changed files with 369 additions and 171 deletions
+158 -56
View File
@@ -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);
}