#include "kzstarget.h" #include "ui_kzstarget.h" kzsTarget::kzsTarget(QWidget *parent) : QDialog(parent), ui(new Ui::kzsTarget) { ui->setupUi(this); ui->label_4->hide(); ui->label_5->hide(); ui->label_6->setText(QString::fromLocal8Bit("Трасса: от 1 до 99")); ui->lineEdit->setText("0"); ui->lineEdit_2->setText("0"); QTimer *tmr = new QTimer(this); connect(tmr, SIGNAL(timeout()), this, SLOT(msTick())); tmr->start(500); } kzsTarget::~kzsTarget() { delete ui; } void kzsTarget::msTick() { airObj *target = 0; groundObj *grO; int n_tr = ui->lineEdit_2->text().toInt(); if ((n_tr<1)||(n_tr>99)) { ui->label_4->hide(); ui->label_5->hide(); ui->label_6->setText(QString::fromLocal8Bit("Трасса: от 1 до 99")); } else { target = ((Widget*)parent())->targets.at(n_tr-1); if (target->exist == false) { ui->label_4->hide(); ui->label_5->hide(); ui->label_6->setText(QString::fromLocal8Bit("Трасса %1 не существует").arg(n_tr)); } } int n_ab = ui->lineEdit->text().toInt(); if ((n_ab<0)||(n_ab>6)) { ui->label_4->hide(); ui->label_5->hide(); ui->label_6->setText(QString::fromLocal8Bit("Номер абонента от 0 до 6")); } else { grO = ((Widget*)parent())->grObj.at(n_ab); if (grO->exist==false) { ui->label_4->hide(); ui->label_5->hide(); ui->label_6->setText(QString::fromLocal8Bit("Нет точки стояния абонента %1").arg(n_ab)); } else { if (target) if (target->exist) { QPointF pt = target->getPos(); QPointF p0 = grO->getPos(); QLineF lf = QLineF(p0,pt); qreal dist = lf.length()/10; qreal azim = 90-lf.angle(); if (azim<0) azim+=360; int du = azim/6; QString s; ui->label_4->setText(QString::fromLocal8Bit("%1 ДУ").arg(du)); ui->label_4->show(); s.setNum(azim, 'f', 0); s.append("°"); ui->label_5->setText(s); ui->label_5->show(); s.setNum(dist, 'f', 1); s.prepend(QString::fromLocal8Bit("Азимут: Дальность: ")); ui->label_6->setText(s); } } } } void kzsTarget::on_pushButton_2_clicked() { close(); ((Widget*)parent())->clearOpenWidget(); } void kzsTarget::on_pushButton_clicked() { QMessageBox msg(this); msg.setWindowTitle(QString::fromLocal8Bit("Ошибка")); msg.setIcon(QMessageBox::Information); msg.addButton(QString::fromLocal8Bit("Да"),QMessageBox::AcceptRole); int i = ui->lineEdit->text().toInt(); int t = ui->lineEdit_2->text().toInt(); airObj *ao; groundObj *go; if ((i>0)&&(i<7)) { go = ((Widget*)parent())->grObj.at(i); if (!go->exist) { msg.setText(QString::fromLocal8Bit("Не обнаружена точка стояния абонента %1").arg(i)); msg.exec(); } else { if ((t<1)||(t>99)) { msg.setText(QString::fromLocal8Bit("Номер трассы должен быть от 1 до 99")); msg.exec(); } else { ao = ((Widget*)parent())->targets[t-1]; if (!ao->exist) { msg.setText(QString::fromLocal8Bit("Трасса %1 не существует").arg(t)); msg.exec(); } else { go->removeCU(ao->uid); ao->setKZS(i); ((Widget*)parent())->sendCU(i, 33, ao->uid); ((Widget*)parent())->clearOpenWidget(); close(); } } } } else { msg.setText(QString::fromLocal8Bit("Номер абонента должен быть от 1 до 6")); msg.exec(); } }