Files
gcs-nf/App/ToolsUI/tools_Index4/tools_Index4.cpp
T
2020-09-17 20:24:04 +08:00

427 lines
15 KiB
C++

#include "tools_Index4.h"
#include "ui_tools_Index4.h"
tools_Index4::tools_Index4(QWidget *parent) :
QWidget(parent),
ui(new Ui::tools_Index4)
{
ui->setupUi(this);
m_parent = parent;
//检测文件夹,如果不存在,那么就新建一个,这里存着所有的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"));
//setWindowFlags(Qt::Dialog);
loadCommandJson("./Init/Init.json");
}
tools_Index4::~tools_Index4()
{
delete ui;
}
void tools_Index4::closeEvent(QCloseEvent *event)
{
qDebug() << event;
this->setParent(m_parent);
setWindowFlags(Qt::Widget);
this->setGeometry(m_parent->geometry());
//this->setGeometry(0,0,m_parent->geometry().width(),m_parent->geometry().height());
this->move(0,10);
this->show();
setFloat(false);
qDebug() << "DoubleClick" << event;
event->ignore();
}
void tools_Index4::mouseMoveEvent(QMouseEvent *event)
{
if(this->parent())
{
this->setParent(nullptr);
this->setWindowFlags(Qt::Dialog);
this->move(0,10);
this->show();
setFloat(true);
}
qDebug() << "Move" << event;
}
void tools_Index4::mouseReleaseEvent(QMouseEvent *event)
{
qDebug() << "clicked";
if (event->button() == Qt::MiddleButton)
{
}
else if (event->button() == Qt::RightButton)
{
if(event->modifiers() == Qt::ControlModifier)
{
QFileDialog *dlg = new QFileDialog();
QString fileName = dlg->getOpenFileName(this, tr("Selete Init File..."),
"./Init/",
tr("Init file (*.json)"));
if(!fileName.isEmpty())
{
loadCommandJson(fileName);
}
}
}
}
void tools_Index4::mouseDoubleClickEvent(QMouseEvent *event)
{
this->setParent(m_parent);
setWindowFlags(Qt::Widget);
this->setGeometry(m_parent->geometry());
//this->setGeometry(0,0,m_parent->geometry().width(),m_parent->geometry().height());
this->move(0,10);
this->show();
setFloat(false);
qDebug() << "DoubleClick" << event;
}
void tools_Index4::loadCommandJson(const QString& jsonFilename)
{
if (jsonFilename.isEmpty()) {
return;
}
qDebug() << "Loading " << jsonFilename;
QFile jsonFile(jsonFilename);
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
qWarning() << "Unable to open file" << jsonFilename << jsonFile.errorString();
return;
}
QByteArray bytes = jsonFile.readAll();
jsonFile.close();
QJsonParseError jsonParseError;
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
if (jsonParseError.error != QJsonParseError::NoError) {
qWarning() << jsonFilename << "Unable to open json document" << jsonParseError.errorString();
return;
}
QJsonObject json = doc.object();
qDebug() << "command version :" << json.value("version").toInt();
QJsonValue jsonValue = json.value("ServoSetting");
if (!jsonValue.isObject()) {
qWarning() << jsonFilename << "_CommandButtonJsonKey not object";
return;
}
QJsonObject infojson = jsonValue.toObject();
QJsonValue MaxValue = infojson.value("Max");
if (!MaxValue.isArray()) {
qWarning() << jsonFilename << "_CommandButtonJsonKey not Array";
return;
}
Max = MaxValue.toArray();
QJsonValue MinValue = infojson.value("Min");
if (!MinValue.isArray()) {
qWarning() << jsonFilename << "_CommandButtonJsonKey not Array";
return;
}
Min = MinValue.toArray();
/*qDebug() << Max
<< Min;
*/
//==========载入最大最小值
setRange(Min,Max);
}
void tools_Index4::setRange(QJsonArray min,QJsonArray max)
{
if(min.size() < 64)
{
qDebug() << "Error Min size less than 64";
return ;
}
if(max.size() < 64)
{
qDebug() << "Error Max size less than 64";
return ;
}
qDebug() << "min" << min;
//setMIN
ui->progressBar_0_1->setMinimum(min.at(0).toDouble());
ui->progressBar_0_2->setMinimum(min.at(1).toDouble());
ui->progressBar_0_3->setMinimum(min.at(2).toDouble());
ui->progressBar_0_4->setMinimum(min.at(3).toDouble());
ui->progressBar_0_5->setMinimum(min.at(4).toDouble());
ui->progressBar_0_6->setMinimum(min.at(5).toDouble());
ui->progressBar_0_7->setMinimum(min.at(6).toDouble());
ui->progressBar_0_8->setMinimum(min.at(7).toDouble());
ui->progressBar_0_9->setMinimum(min.at(8).toDouble());
ui->progressBar_0_10->setMinimum(min.at(9).toDouble());
ui->progressBar_0_11->setMinimum(min.at(10).toDouble());
ui->progressBar_0_12->setMinimum(min.at(11).toDouble());
ui->progressBar_0_13->setMinimum(min.at(12).toDouble());
ui->progressBar_0_14->setMinimum(min.at(13).toDouble());
ui->progressBar_0_15->setMinimum(min.at(14).toDouble());
ui->progressBar_0_16->setMinimum(min.at(15).toDouble());
ui->progressBar_1_1->setMinimum(min.at(16).toDouble());
ui->progressBar_1_2->setMinimum(min.at(17).toDouble());
ui->progressBar_1_3->setMinimum(min.at(18).toDouble());
ui->progressBar_1_4->setMinimum(min.at(19).toDouble());
ui->progressBar_1_5->setMinimum(min.at(20).toDouble());
ui->progressBar_1_6->setMinimum(min.at(21).toDouble());
ui->progressBar_1_7->setMinimum(min.at(22).toDouble());
ui->progressBar_1_8->setMinimum(min.at(23).toDouble());
ui->progressBar_1_9->setMinimum(min.at(24).toDouble());
ui->progressBar_1_10->setMinimum(min.at(25).toDouble());
ui->progressBar_1_11->setMinimum(min.at(26).toDouble());
ui->progressBar_1_12->setMinimum(min.at(27).toDouble());
ui->progressBar_1_13->setMinimum(min.at(28).toDouble());
ui->progressBar_1_14->setMinimum(min.at(29).toDouble());
ui->progressBar_1_15->setMinimum(min.at(30).toDouble());
ui->progressBar_1_16->setMinimum(min.at(31).toDouble());
ui->progressBar_2_1->setMinimum(min.at(32).toDouble());
ui->progressBar_2_2->setMinimum(min.at(33).toDouble());
ui->progressBar_2_3->setMinimum(min.at(34).toDouble());
ui->progressBar_2_4->setMinimum(min.at(35).toDouble());
ui->progressBar_2_5->setMinimum(min.at(36).toDouble());
ui->progressBar_2_6->setMinimum(min.at(37).toDouble());
ui->progressBar_2_7->setMinimum(min.at(38).toDouble());
ui->progressBar_2_8->setMinimum(min.at(39).toDouble());
ui->progressBar_2_9->setMinimum(min.at(40).toDouble());
ui->progressBar_2_10->setMinimum(min.at(41).toDouble());
ui->progressBar_2_11->setMinimum(min.at(42).toDouble());
ui->progressBar_2_12->setMinimum(min.at(43).toDouble());
ui->progressBar_2_13->setMinimum(min.at(44).toDouble());
ui->progressBar_2_14->setMinimum(min.at(45).toDouble());
ui->progressBar_2_15->setMinimum(min.at(46).toDouble());
ui->progressBar_2_16->setMinimum(min.at(47).toDouble());
ui->progressBar_3_1->setMinimum(min.at(48).toDouble());
ui->progressBar_3_2->setMinimum(min.at(49).toDouble());
ui->progressBar_3_3->setMinimum(min.at(50).toDouble());
ui->progressBar_3_4->setMinimum(min.at(51).toDouble());
ui->progressBar_3_5->setMinimum(min.at(52).toDouble());
ui->progressBar_3_6->setMinimum(min.at(53).toDouble());
ui->progressBar_3_7->setMinimum(min.at(54).toDouble());
ui->progressBar_3_8->setMinimum(min.at(55).toDouble());
ui->progressBar_3_9->setMinimum(min.at(56).toDouble());
ui->progressBar_3_10->setMinimum(min.at(57).toDouble());
ui->progressBar_3_11->setMinimum(min.at(58).toDouble());
ui->progressBar_3_12->setMinimum(min.at(59).toDouble());
ui->progressBar_3_13->setMinimum(min.at(60).toDouble());
ui->progressBar_3_14->setMinimum(min.at(61).toDouble());
ui->progressBar_3_15->setMinimum(min.at(62).toDouble());
ui->progressBar_3_16->setMinimum(min.at(63).toDouble());
//setMAX
ui->progressBar_0_1->setMaximum(max.at(0).toDouble());
ui->progressBar_0_2->setMaximum(max.at(1).toDouble());
ui->progressBar_0_3->setMaximum(max.at(2).toDouble());
ui->progressBar_0_4->setMaximum(max.at(3).toDouble());
ui->progressBar_0_5->setMaximum(max.at(4).toDouble());
ui->progressBar_0_6->setMaximum(max.at(5).toDouble());
ui->progressBar_0_7->setMaximum(max.at(6).toDouble());
ui->progressBar_0_8->setMaximum(max.at(7).toDouble());
ui->progressBar_0_9->setMaximum(max.at(8).toDouble());
ui->progressBar_0_10->setMaximum(max.at(9).toDouble());
ui->progressBar_0_11->setMaximum(max.at(10).toDouble());
ui->progressBar_0_12->setMaximum(max.at(11).toDouble());
ui->progressBar_0_13->setMaximum(max.at(12).toDouble());
ui->progressBar_0_14->setMaximum(max.at(13).toDouble());
ui->progressBar_0_15->setMaximum(max.at(14).toDouble());
ui->progressBar_0_16->setMaximum(max.at(15).toDouble());
ui->progressBar_1_1->setMaximum(max.at(16).toDouble());
ui->progressBar_1_2->setMaximum(max.at(17).toDouble());
ui->progressBar_1_3->setMaximum(max.at(18).toDouble());
ui->progressBar_1_4->setMaximum(max.at(19).toDouble());
ui->progressBar_1_5->setMaximum(max.at(20).toDouble());
ui->progressBar_1_6->setMaximum(max.at(21).toDouble());
ui->progressBar_1_7->setMaximum(max.at(22).toDouble());
ui->progressBar_1_8->setMaximum(max.at(23).toDouble());
ui->progressBar_1_9->setMaximum(max.at(24).toDouble());
ui->progressBar_1_10->setMaximum(max.at(25).toDouble());
ui->progressBar_1_11->setMaximum(max.at(26).toDouble());
ui->progressBar_1_12->setMaximum(max.at(27).toDouble());
ui->progressBar_1_13->setMaximum(max.at(28).toDouble());
ui->progressBar_1_14->setMaximum(max.at(29).toDouble());
ui->progressBar_1_15->setMaximum(max.at(30).toDouble());
ui->progressBar_1_16->setMaximum(max.at(31).toDouble());
ui->progressBar_2_1->setMaximum(max.at(32).toDouble());
ui->progressBar_2_2->setMaximum(max.at(33).toDouble());
ui->progressBar_2_3->setMaximum(max.at(34).toDouble());
ui->progressBar_2_4->setMaximum(max.at(35).toDouble());
ui->progressBar_2_5->setMaximum(max.at(36).toDouble());
ui->progressBar_2_6->setMaximum(max.at(37).toDouble());
ui->progressBar_2_7->setMaximum(max.at(38).toDouble());
ui->progressBar_2_8->setMaximum(max.at(39).toDouble());
ui->progressBar_2_9->setMaximum(max.at(40).toDouble());
ui->progressBar_2_10->setMaximum(max.at(41).toDouble());
ui->progressBar_2_11->setMaximum(max.at(42).toDouble());
ui->progressBar_2_12->setMaximum(max.at(43).toDouble());
ui->progressBar_2_13->setMaximum(max.at(44).toDouble());
ui->progressBar_2_14->setMaximum(max.at(45).toDouble());
ui->progressBar_2_15->setMaximum(max.at(46).toDouble());
ui->progressBar_2_16->setMaximum(max.at(47).toDouble());
ui->progressBar_3_1->setMaximum(max.at(48).toDouble());
ui->progressBar_3_2->setMaximum(max.at(49).toDouble());
ui->progressBar_3_3->setMaximum(max.at(50).toDouble());
ui->progressBar_3_4->setMaximum(max.at(51).toDouble());
ui->progressBar_3_5->setMaximum(max.at(52).toDouble());
ui->progressBar_3_6->setMaximum(max.at(53).toDouble());
ui->progressBar_3_7->setMaximum(max.at(54).toDouble());
ui->progressBar_3_8->setMaximum(max.at(55).toDouble());
ui->progressBar_3_9->setMaximum(max.at(56).toDouble());
ui->progressBar_3_10->setMaximum(max.at(57).toDouble());
ui->progressBar_3_11->setMaximum(max.at(58).toDouble());
ui->progressBar_3_12->setMaximum(max.at(59).toDouble());
ui->progressBar_3_13->setMaximum(max.at(60).toDouble());
ui->progressBar_3_14->setMaximum(max.at(61).toDouble());
ui->progressBar_3_15->setMaximum(max.at(62).toDouble());
ui->progressBar_3_16->setMaximum(max.at(63).toDouble());
}
void tools_Index4::setChannel(int port,uint16_t *value)
{
switch (port) {
case 0:
ui->progressBar_0_1->setValue(value[0]);
ui->progressBar_0_2->setValue(value[1]);
ui->progressBar_0_3->setValue(value[2]);
ui->progressBar_0_4->setValue(value[3]);
ui->progressBar_0_5->setValue(value[4]);
ui->progressBar_0_6->setValue(value[5]);
ui->progressBar_0_7->setValue(value[6]);
ui->progressBar_0_8->setValue(value[7]);
ui->progressBar_0_9->setValue(value[8]);
ui->progressBar_0_10->setValue(value[9]);
ui->progressBar_0_11->setValue(value[10]);
ui->progressBar_0_12->setValue(value[11]);
ui->progressBar_0_13->setValue(value[12]);
ui->progressBar_0_14->setValue(value[13]);
ui->progressBar_0_15->setValue(value[14]);
ui->progressBar_0_16->setValue(value[15]);
break;
case 1:
ui->progressBar_1_1->setValue(value[0]);
ui->progressBar_1_2->setValue(value[1]);
ui->progressBar_1_3->setValue(value[2]);
ui->progressBar_1_4->setValue(value[3]);
ui->progressBar_1_5->setValue(value[4]);
ui->progressBar_1_6->setValue(value[5]);
ui->progressBar_1_7->setValue(value[6]);
ui->progressBar_1_8->setValue(value[7]);
ui->progressBar_1_9->setValue(value[8]);
ui->progressBar_1_10->setValue(value[9]);
ui->progressBar_1_11->setValue(value[10]);
ui->progressBar_1_12->setValue(value[11]);
ui->progressBar_1_13->setValue(value[12]);
ui->progressBar_1_14->setValue(value[13]);
ui->progressBar_1_15->setValue(value[14]);
ui->progressBar_1_16->setValue(value[15]);
break;
case 2:
ui->progressBar_2_1->setValue(value[0]);
ui->progressBar_2_2->setValue(value[1]);
ui->progressBar_2_3->setValue(value[2]);
ui->progressBar_2_4->setValue(value[3]);
ui->progressBar_2_5->setValue(value[4]);
ui->progressBar_2_6->setValue(value[5]);
ui->progressBar_2_7->setValue(value[6]);
ui->progressBar_2_8->setValue(value[7]);
ui->progressBar_2_9->setValue(value[8]);
ui->progressBar_2_10->setValue(value[9]);
ui->progressBar_2_11->setValue(value[10]);
ui->progressBar_2_12->setValue(value[11]);
ui->progressBar_2_13->setValue(value[12]);
ui->progressBar_2_14->setValue(value[13]);
ui->progressBar_2_15->setValue(value[14]);
ui->progressBar_2_16->setValue(value[15]);
break;
case 3:
ui->progressBar_3_1->setValue(value[0]);
ui->progressBar_3_2->setValue(value[1]);
ui->progressBar_3_3->setValue(value[2]);
ui->progressBar_3_4->setValue(value[3]);
ui->progressBar_3_5->setValue(value[4]);
ui->progressBar_3_6->setValue(value[5]);
ui->progressBar_3_7->setValue(value[6]);
ui->progressBar_3_8->setValue(value[7]);
ui->progressBar_3_9->setValue(value[8]);
ui->progressBar_3_10->setValue(value[9]);
ui->progressBar_3_11->setValue(value[10]);
ui->progressBar_3_12->setValue(value[11]);
ui->progressBar_3_13->setValue(value[12]);
ui->progressBar_3_14->setValue(value[13]);
ui->progressBar_3_15->setValue(value[14]);
ui->progressBar_3_16->setValue(value[15]);
break;
default:
break;
}
//ui->progressBar_3_16->setTextVisible(true);
}