164 lines
3.3 KiB
C++
164 lines
3.3 KiB
C++
#include "tools_Index4.h"
|
|
#include "ui_tools_Index4.h"
|
|
|
|
tools_Index4::tools_Index4(QWidget *parent) :
|
|
ToolsWidget(parent),
|
|
ui(new Ui::tools_Index4)
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
//检测文件夹,如果不存在,那么就新建一个,这里存着所有的qml文件
|
|
QDir *Dir = new QDir;
|
|
if(!Dir->exists("./Init"))
|
|
Dir->mkdir("./Init");//如果文件夹不存在就新建
|
|
|
|
//load qss
|
|
QFile file(":/qss/tools_index4.qss");
|
|
file.open(QFile::ReadOnly);
|
|
QTextStream filetext(&file);
|
|
QString stylesheet = filetext.readAll();
|
|
this->setStyleSheet(stylesheet);
|
|
file.close();
|
|
|
|
setWindowTitle(tr("Servos Inspector"));
|
|
|
|
|
|
addGroup(0);
|
|
addGroup(1);
|
|
//addGroup(2);
|
|
//addGroup(3);
|
|
//addGroup(4);
|
|
|
|
|
|
|
|
}
|
|
|
|
tools_Index4::~tools_Index4()
|
|
{
|
|
|
|
foreach (QProgressBar *bar, barlist) {
|
|
if(bar)
|
|
{
|
|
delete bar;
|
|
}
|
|
}
|
|
|
|
|
|
delete ui;
|
|
}
|
|
|
|
|
|
|
|
|
|
void tools_Index4::mouseReleaseEvent(QMouseEvent *event)
|
|
{
|
|
if (event->button() == Qt::MiddleButton)
|
|
{
|
|
|
|
}
|
|
else if (event->button() == Qt::RightButton)
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
void tools_Index4::mouseDoubleClickEvent(QMouseEvent *event)
|
|
{
|
|
|
|
}
|
|
|
|
void tools_Index4::setChannel(int port,QMap<int,uint16_t> pwm)
|
|
{
|
|
//qDebug() << pwm;
|
|
|
|
if(port > 10)
|
|
{
|
|
qDebug() << "port out of range";
|
|
return;
|
|
}
|
|
|
|
if(!barlist.contains(port * 16 + 1))
|
|
{
|
|
addGroup(port);
|
|
return;
|
|
}
|
|
|
|
for (int var = 1; var <= 16; ++var) {
|
|
QProgressBar *progress = barlist.value(port * 16 + var);
|
|
|
|
if(progress)
|
|
{
|
|
if(pwm.contains(var))
|
|
{
|
|
if(pwm.value(var) <= 800)
|
|
{
|
|
progress->setRange(pwm.value(var),2200);
|
|
}
|
|
else if(pwm.value(var) >= 2200)
|
|
{
|
|
progress->setRange(800,pwm.value(var));
|
|
}
|
|
else
|
|
{
|
|
progress->setRange(800,2200);
|
|
}
|
|
|
|
progress->setValue(pwm.value(var));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void tools_Index4::addGroup(int port)
|
|
{
|
|
if(!barlist.contains(port * 16 + 1))
|
|
{
|
|
QGridLayout *layout = new QGridLayout();
|
|
|
|
QGroupBox * groupbox = new QGroupBox(this);
|
|
QString boxname = tr("Servos Port %1");
|
|
groupbox->setTitle(boxname.arg(port));
|
|
groupbox->setObjectName(boxname);
|
|
|
|
QString name = "progressBar_%1_%2";
|
|
for (int var = 1; var <= 16; ++var) {
|
|
|
|
QLabel *l = new QLabel(groupbox);
|
|
QString lt = tr("ch%1");
|
|
l->setText(lt.arg(var));
|
|
l->adjustSize();
|
|
|
|
QProgressBar *progress = new QProgressBar(groupbox);
|
|
|
|
progress->setObjectName(name.arg(port).arg(var));
|
|
|
|
progress->setFormat("%v");
|
|
|
|
progress->setRange(800,2200);
|
|
progress->setValue(1500);
|
|
|
|
barlist.insert(port * 16 + var,progress);
|
|
|
|
layout->addWidget(l,var,0,1,1);
|
|
layout->addWidget(progress,var,1);
|
|
}
|
|
|
|
groupbox->setLayout(layout);
|
|
|
|
|
|
int row = 0;
|
|
int column = 0;
|
|
|
|
|
|
row = port / 5;
|
|
column = port % 5;
|
|
|
|
ui->gridLayout->addWidget(groupbox,row,column,1,1);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|