#include "killtarget.h" #include "ui_killtarget.h" killTarget::killTarget(QWidget *parent) : QDialog(parent), ui(new Ui::killTarget) { ui->setupUi(this); ui->label_4->hide(); ui->label_5->hide(); ui->label_6->setText(QString::fromLocal8Bit("Трасса: от 1 до 255")); ui->lineEdit->setText("0"); ui->lineEdit_2->setText("0"); QTimer *tmr = new QTimer(this); connect(tmr, SIGNAL(timeout()), this, SLOT(msTick())); tmr->start(500); } killTarget::~killTarget() { delete ui; } void killTarget::msTick() { airObj *target=0; groundObj *grO=0; int n_ab = ui->lineEdit->text().toInt(); 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)); } 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->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 killTarget::on_pushButton_2_clicked() { close(); ((Widget*)parent())->clearOpenWidget(); } void killTarget::on_pushButton_clicked() { int grNum = ui->lineEdit->text().toInt(); // абонент int tarNum = ui->lineEdit_2->text().toInt(); // номер трассы airObj *ao, *ao_temp; ao = ((Widget*)parent())->targets[tarNum-1]; ao->setCU(grNum); ((Widget*)parent())->sendCU(grNum, 11, ao->uid); int ret = ((Widget*)parent())->grObj[grNum]->addCU(ao->uid); if (ret>=0) { foreach (ao_temp, ((Widget*)parent())->targets) if (ao_temp->uid == ret) ao_temp->clearCU(grNum); } close(); ((Widget*)parent())->clearOpenWidget(); }