123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- #include "DiagnosisPage.h"
- #include "../common/JQCommon.h"
- DiagnosisPage::DiagnosisPage(QWidget *parent)
- : QWidget(parent)
- {
- ui.setupUi(this);
- Init();
- }
- DiagnosisPage::~DiagnosisPage()
- {}
- void DiagnosisPage::Init()
- {
- this->setAttribute(Qt::WA_DeleteOnClose);
- ui.axisSwitchTabPage->tabBar()->hide();
- ui.axisSwitchTabPage->setCurrentIndex(0);
- ui.axisListTree->setHeaderHidden(true);
- ui.axisListTree->setEditTriggers(QAbstractItemView::NoEditTriggers);
- ns_module::CViewInterface* pCViewInterface = ns_module::CViewInterface::GetInstance();
- if (pCViewInterface)
- {
- m_veCAxis = pCViewInterface->GetViewMotion()->GetAxisList();
- // 创建模型
- m_model = new QStandardItemModel(this);
- QString strModeA;
- QStandardItem* pModeType = nullptr;
- QStandardItem* rooto = m_model->invisibleRootItem();
- QStandardItem* root1 = new QStandardItem(tr("Diagnosis Page", "诊断页面"));
- rooto->appendRow(root1);
- root1->setFlags(root1->flags() | Qt::ItemIsEnabled);
- for (auto a: m_veCAxis)
- {
- QString strMode = QString::fromLocal8Bit(a->GetModuleType().c_str());
- if (strModeA != strMode)
- {
- pModeType = new QStandardItem(strMode);
-
- root1->appendRow(pModeType);
- strModeA = strMode;
- }
- // 添加二级节点
- QStandardItem* pAisType = new QStandardItem(QString::fromLocal8Bit(a->GetStringAxisType().c_str()));
- pModeType->appendRow(pAisType);
- }
-
- ui.axisListTree->setModel(m_model);
- ui.axisListTree->expandAll();
- }
-
- // 控件状态
- JQCommon::SetQLineEditLimit(ui.negLineEdit);
- JQCommon::SetQLineEditLimit(ui.posLineEdit);
- JQCommon::SetQLineEditLimit(ui.speedLineEdit);
- }
- void DiagnosisPage::SwitchOperationAxisPage(bool isSwitch)
- {
- if (isSwitch)
- {
- QString strMode = QString::fromLocal8Bit(m_pCurrOpenCAxis->GetAxisName().c_str());
- ui.titleLable->setText(strMode);
- // 设置状态
- m_IsDriveEnabled = m_pCurrOpenCAxis->JIsDriveEnabled();
- ui.xAxisEnabledRadioBut->setChecked(m_IsDriveEnabled);
- // 获取正负限位是否打开
- bool bEnabledNeg, bEnabledPos;
- m_pCurrOpenCAxis->JGetSoftLimitEnableStatus(bEnabledNeg, bEnabledPos);
- if (bEnabledNeg && bEnabledPos)
- {
- double dSoftLimitNeg, dSoftLimitPos, dSoftTravelRange;
- m_pCurrOpenCAxis->JGetSoftLimit(dSoftLimitNeg, dSoftLimitPos, dSoftTravelRange);
- ui.negLineEdit->setText(QString::number(dSoftLimitNeg,'f',2));
- ui.posLineEdit->setText(QString::number(dSoftLimitPos,'f',2));
- }
-
- //ui.speedLineEdit->setText(QString::number(0));
- // 设置定时获取速度
- const int nRunTime = 300; //所有新开的定时器都用这个
- m_nTimerID = startTimer(nRunTime);
- }
- else
- {
- killTimer(m_nTimerID);
- m_nTimerID = 0;
- ui.axisSwitchTabPage->setCurrentIndex(0);
- }
- }
- void DiagnosisPage::timerEvent(QTimerEvent* event)
- {
- if (m_nTimerID == event->timerId())
- {
- if (m_pCurrOpenCAxis)
- {
- double doPos = 0.0;
- m_pCurrOpenCAxis->GetActualPos(doPos);
- ui.xPositionLineEdit->setText(QString::number(doPos, 'f', 2));
- }
- }
- }
- void DiagnosisPage::on_axisListTree_doubleClicked(const QModelIndex& index)
- {
- if (index.isValid())
- {
- QString itemName = index.data().toString();
- if (!m_model->hasChildren(index)) // 没有子节点
- {
- // 表示想要切换到轴控制
- QModelIndex parentIndex = index.parent();
- QString currentItem = parentIndex.data().toString();
- currentItem += "_";
- currentItem += itemName;
- // 给轴窗口
- ui.axisSwitchTabPage->setCurrentIndex(1);
- for (auto& a : m_veCAxis)
- {
- QString strMode = QString::fromLocal8Bit(a->GetAxisName().c_str());
- if (strMode == currentItem)
- {
- //m_pCurrOpenCAxis.reset(a);
- m_pCurrOpenCAxis = a;
- SwitchOperationAxisPage(true);
- break;
- }
- }
- }
- }
- }
- void DiagnosisPage::on_xAxisDisable_clicked()
- {
- QString strText = tr("Disable", "关使能");
- if (m_IsDriveEnabled)
- {
- m_pCurrOpenCAxis->AxisOff();
- strText = tr("Enable", "开使能");
- }
- else
- {
- m_pCurrOpenCAxis->AxisOn();
- }
- ui.xAxisDisable->setText(strText);
- }
- void DiagnosisPage::on_xAxisHomeBut_clicked()
- {
- m_pCurrOpenCAxis->Home();
- }
- void DiagnosisPage::on_setPosBut_clicked()
- {
- double xNeg = ui.negLineEdit->text().toDouble();
- double xPos = ui.posLineEdit->text().toDouble();
- m_pCurrOpenCAxis->JSetSoftLimit(xNeg, xPos);
- }
- void DiagnosisPage::on_setNegBut_clicked()
- {
- double xNeg = ui.negLineEdit->text().toDouble();
- double xPos = ui.posLineEdit->text().toDouble();
- m_pCurrOpenCAxis->JSetSoftLimit(xNeg, xPos);
- }
- void DiagnosisPage::on_setSpeedBut_clicked()
- {
- double doSpeed = ui.speedLineEdit->text().toDouble();
- m_pCurrOpenCAxis->JSetTargetVel(doSpeed);
- }
- void DiagnosisPage::on_retBut_clicked()
- {
- SwitchOperationAxisPage(false);
- }
|