1643 lines
42 KiB
C++
1643 lines
42 KiB
C++
#include "widget.h"
|
||
#include "ui_widget.h"
|
||
#include <QFile>
|
||
#include <QQueue>
|
||
|
||
Widget::Widget(QWidget *parent) :
|
||
QWidget(parent),
|
||
ui(new Ui::Widget)
|
||
{
|
||
|
||
ownTS = QPointF(0,0);
|
||
reper = QPointF(0,0);
|
||
curCentr = reper;
|
||
|
||
openWidget = 0;
|
||
openWidgetType = 0;
|
||
openAirTicket = 0;
|
||
curAirTicketNum = 0;
|
||
currentNum = 0;
|
||
|
||
sendCCR = false;
|
||
vklCCR = false;
|
||
|
||
ui->setupUi(this);
|
||
|
||
str2Z.clear();
|
||
QByteArray b;
|
||
|
||
currentTaskNum = 0;
|
||
|
||
|
||
QFile file(":/new/table2z/text.txt");
|
||
QString st;
|
||
if (file.open(QFile::ReadOnly))
|
||
{
|
||
for (int i=0; i<100; i++)
|
||
{
|
||
b = file.readLine() ;
|
||
b.truncate(b.size()-2);
|
||
st = QString::fromLocal8Bit(b);
|
||
str2Z << st;
|
||
}
|
||
}
|
||
file.close();
|
||
|
||
|
||
|
||
|
||
for (int i=0;i<9;i++)
|
||
grScales[i] = ui->comboBox_2->itemText(i).toInt();
|
||
|
||
groundObj *go;
|
||
KO tKO;
|
||
cmdKO.clear();
|
||
|
||
for (int i=0;i<15;i++)
|
||
{
|
||
go = new groundObj();
|
||
go->exist=(i<5);
|
||
go->n_Ab = i;
|
||
grObj<<go;
|
||
|
||
tKO.x=0;
|
||
tKO.y=0;
|
||
tKO.ZZ = 99;
|
||
cmdKO<<tKO;
|
||
}
|
||
|
||
grObj[0]->setBoegotov(true);
|
||
|
||
grObj[1]->setPos(QPointF(0, 150));
|
||
grObj[1]->setType(1);
|
||
grObj[1]->setBoegotov(false);
|
||
|
||
|
||
grObj[2]->setPos(QPointF(150, 0));
|
||
grObj[2]->setType(1);
|
||
grObj[2]->setBoegotov(false);
|
||
|
||
|
||
grObj[3]->setPos(QPointF(0, -100));
|
||
grObj[3]->setType(1);
|
||
// grObj[3]->setSektor(30,170);
|
||
grObj[3]->setBoegotov(false);
|
||
|
||
|
||
|
||
grObj[4]->setPos(QPointF(-150, 0));
|
||
grObj[4]->setType(1);
|
||
grObj[4]->setBoegotov(false);
|
||
|
||
|
||
airObj *tar;
|
||
for (int i=0; i<100; i++)
|
||
{
|
||
tar = new airObj();
|
||
tar->exist=false;
|
||
tar->numer= 0;
|
||
tar->uid = -1;
|
||
targets<<tar;
|
||
|
||
uLines[i]=0;
|
||
}
|
||
|
||
// addTarget(11, 1, 0, 320, 140, 2, -20, 5);
|
||
// addTarget(12, 12, 0, 121, 130, 11, 20, 20);
|
||
// addTarget(13, 1, 0, 201, -113, 41, 0, 0);
|
||
// addTarget(14, 1, 0, -241, -113, 123, 0, 0);
|
||
// addTarget(16, 1, 0, 261, -213, 10, 0, 0);
|
||
|
||
// targets[1]->setPriznak(3);
|
||
|
||
|
||
QFont f = ui->label->font();
|
||
f.setPointSizeF(10);
|
||
ui->label->setFont(f);
|
||
f.setBold(true);
|
||
ui->label_2->setFont(f);
|
||
ui->textEdit->setReadOnly(true);
|
||
addLogText(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
|
||
|
||
//////////////////////
|
||
createActions1();
|
||
createMenu1();
|
||
|
||
createActions2();
|
||
createMenu2();
|
||
/////////////////////
|
||
renewArmWin();
|
||
tmr = new QTimer(this);
|
||
connect(tmr, SIGNAL(timeout()), this, SLOT(renewArmWin()));
|
||
connect(tmr, SIGNAL(timeout()), this, SLOT(checkTargetsAndKRU()));
|
||
tmr->start(1000);
|
||
|
||
tmrCheckTaskStop = new QTimer(this);
|
||
connect(tmrCheckTaskStop, SIGNAL(timeout()), this, SLOT(stopTask()));
|
||
|
||
//////////////////////////////////
|
||
initGraph();
|
||
//////////////////////////////////
|
||
ui->comboBox_2->setCurrentIndex(4);
|
||
|
||
QTimer::singleShot(100,this, SLOT(magicTemp()));
|
||
|
||
|
||
///////////////////////////////////
|
||
initNetwork();
|
||
|
||
|
||
initUprav();
|
||
/////////////////////////////////////
|
||
tmrUpr = new QTimer(this);
|
||
connect(tmrUpr, SIGNAL(timeout()), SLOT(refreshUprTab()));
|
||
tmrUpr->start(1000);
|
||
|
||
|
||
readGroundOpt();
|
||
}
|
||
|
||
Widget::~Widget()
|
||
{
|
||
|
||
delete ui;
|
||
}
|
||
|
||
|
||
void Widget::readGroundOpt()
|
||
{
|
||
QFile f("ground.ini");
|
||
qreal a1,a2, hmin, hmax;
|
||
int alt;
|
||
bool pr;
|
||
|
||
|
||
if (f.open(QIODevice::ReadOnly ))
|
||
{
|
||
QDataStream out(&f);
|
||
for (int i=1; i<6; i++)
|
||
{
|
||
out >> pr >> a1 >> a2 >> alt >> hmin >> hmax;
|
||
|
||
grObj[i]->setSektor(a1, a2);
|
||
grObj[i]->setOgrH(alt, hmin, hmax);
|
||
grObj[i]->setPriznakSektor(pr);
|
||
}
|
||
|
||
|
||
f.close();
|
||
}
|
||
else
|
||
{
|
||
qDebug("File 'ground.ini' not found");
|
||
}
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
void Widget::writeGroundOpt()
|
||
{
|
||
QFile f("ground.ini");
|
||
groundObj *g ;
|
||
|
||
if (f.open(QIODevice::WriteOnly ))
|
||
{
|
||
QDataStream out(&f);
|
||
|
||
for (int i = 1; i<6; i++)
|
||
{
|
||
g = grObj[i];
|
||
out << g->priznakSektor << g->angle1 << g->angle2 << g->alt_n << g->hMin << g->hMax;
|
||
}
|
||
}
|
||
f.close();
|
||
}
|
||
|
||
|
||
void Widget::checkTargetsAndKRU()
|
||
{
|
||
QTime time = QTime::currentTime();
|
||
for (int i=0; i<targets.count(); i++)
|
||
{
|
||
if ( targets[i]->exist)
|
||
{
|
||
if (targets[i]->lastTime.secsTo(time)>3) {
|
||
hashIdToNum.remove(targets[i]->uid);
|
||
targets[i]->deleteTarget();
|
||
}
|
||
}
|
||
}
|
||
|
||
if ((time.second()%10) ==0)
|
||
{
|
||
for (int i=1; i<6; i++)
|
||
{
|
||
if (grObj[i]->priznakSektor)
|
||
{
|
||
sendKRU(i, 1);
|
||
}
|
||
else
|
||
{
|
||
sendKRU(i, 0);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
void Widget::stopTask()
|
||
{
|
||
if (tmrCheckTaskStop->isActive()) tmrCheckTaskStop->stop();
|
||
|
||
if (tmrUpr->isActive()) tmrUpr->stop();
|
||
currentTaskNum = 0;
|
||
for (int i=0; i<7; i++)
|
||
{
|
||
if (grObj[i]->type==2) grObj[i]->activeR=1; else grObj[i]->activeR=4;
|
||
grObj[i]->hasCU.clear();
|
||
for (int i=0; i<grObj[i]->activeR; i++) grObj[i]->hasCU<<-1;
|
||
|
||
}
|
||
|
||
for (int i=0; i<100; i++)
|
||
{
|
||
|
||
if (uLines[i]!=0)
|
||
{
|
||
delete uLines[i];
|
||
uLines[i]=0;
|
||
}
|
||
targets[i]->deleteTarget();
|
||
}
|
||
hashIdToNum.clear();
|
||
gsc->update();
|
||
tmrUpr->start(1000);
|
||
// if (! nTmr->isActive()) nTmr->start(500);
|
||
}
|
||
|
||
|
||
int Widget::findTargetFromId(int id)
|
||
{
|
||
if (hashIdToNum.contains(id)) return hashIdToNum[id];
|
||
return -1;
|
||
// int ret=-1;
|
||
// for (int i=0; i<targets.count(); i++)
|
||
// {
|
||
// if (targets[i]->uid==id) {ret = i; break;}
|
||
// }
|
||
// return ret;
|
||
}
|
||
|
||
int Widget::findNextNum(int n)
|
||
{
|
||
int i;
|
||
for (i=n; i<targets.count(); i++)
|
||
if (targets[i]->exist == false) {
|
||
currentNum=i;
|
||
return i;
|
||
};
|
||
|
||
for (i=0; i<n; i++)
|
||
if (targets[i]->exist == false)
|
||
{
|
||
currentNum=i;
|
||
return i;
|
||
};
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
|
||
i=currentNum;
|
||
|
||
currentNum = (i+1) % (targets.count());
|
||
return i;
|
||
}
|
||
|
||
void Widget::addTarget(int id, int aType, int gType, qreal cX, qreal cY, qreal cH, qreal vX, qreal vY)
|
||
{
|
||
qreal dist;
|
||
QLineF lf;
|
||
QString st;
|
||
|
||
int num = findTargetFromId(id);
|
||
if (num<0) {
|
||
num=findNextNum(currentNum);
|
||
targets[num]->uid=id;
|
||
hashIdToNum[id]=num;
|
||
targets[num]->exist=true;
|
||
targets[num]->numer=num;
|
||
targets[num]->setGType(gType);
|
||
targets[num]->setAType(aType);
|
||
targets[num]->setSpeed(vX, vY);
|
||
targets[num]->setCoord(cX, cY, cH);
|
||
|
||
currentNum++;
|
||
|
||
}
|
||
else
|
||
{
|
||
targets[num]->setGType(gType);
|
||
targets[num]->setAType(aType);
|
||
targets[num]->setSpeed(vX, vY);
|
||
targets[num]->setCoord(cX, cY, cH);
|
||
}
|
||
// qDebug(QString::fromLocal8Bit("id = %1 num = %2").arg(id).arg(num).toAscii());
|
||
targets[num]->lastTime = QTime::currentTime();
|
||
|
||
|
||
if (vklCCR)
|
||
if (!targets[num]->haveCU())
|
||
{
|
||
for (int i=1; i<6;i++)
|
||
{
|
||
if (grObj[i]->exist)
|
||
{
|
||
lf = QLineF(grObj[i]->getPos(), targets[num]->getPos());
|
||
dist = lf.length();
|
||
if (dist<100)
|
||
{
|
||
if ((targets[num]->gType==0)||(targets[num]->gType==1))
|
||
{
|
||
targets[num]->setCU(i, 21);
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
targets[num]->setCU(i, 22);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
void Widget::initNetwork()
|
||
{
|
||
currentTaskNum = 0;
|
||
readyForTask = 0;
|
||
udpSend = new QUdpSocket(this);
|
||
nTmr = new QTimer(this);
|
||
connect(nTmr, SIGNAL(timeout()), this, SLOT(synhrTimeout()));
|
||
|
||
nTmr->start(500);
|
||
|
||
|
||
udpNewTask = new QUdpSocket(this);
|
||
udpNewTask->bind(6691);
|
||
connect(udpNewTask, SIGNAL(readyRead()), this, SLOT(newTaskRead()));
|
||
|
||
}
|
||
|
||
void Widget::newTaskRead()
|
||
{
|
||
int len, cnt, mesType;
|
||
int nAb, code2Z, tarNum;
|
||
|
||
|
||
qint8 tByte;
|
||
qint16 tWord;
|
||
qint32 tLong;
|
||
|
||
static int counterForTargets=0;
|
||
|
||
int tarMesType;
|
||
float fx,fy,fh, tFloat;
|
||
float vx, vy, vh;
|
||
fx=fy=fh=vx=vy=vh=0;
|
||
int gosPr=0;
|
||
QString st;
|
||
QByteArray buf;
|
||
buf.clear();
|
||
int ret;
|
||
int uid; // <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
// addLogText("newTaskRead");
|
||
|
||
groundObj *gro;
|
||
|
||
QByteArray datagram;
|
||
QDataStream d(&datagram, QIODevice::ReadOnly);
|
||
d.setByteOrder(QDataStream::LittleEndian);
|
||
|
||
|
||
while (udpNewTask->hasPendingDatagrams())
|
||
{
|
||
datagram.clear();
|
||
len = udpNewTask->pendingDatagramSize();
|
||
datagram.resize(len);
|
||
udpNewTask->readDatagram(datagram.data(), datagram.size());
|
||
|
||
d.setFloatingPointPrecision(QDataStream::SinglePrecision);
|
||
d>>tWord;
|
||
// addLogText(QString(" init1 = %1").arg(tWord));
|
||
d>>tWord;
|
||
currentTaskNum = tWord;
|
||
// addLogText(QString(" init2 = %1").arg(tWord));
|
||
|
||
d>>tWord;
|
||
// addLogText(QString(" init3 = %1").arg(tWord));
|
||
|
||
mesType = tWord;
|
||
switch (mesType)
|
||
{
|
||
case 2: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
d>>tWord>>tLong;
|
||
d>>tWord;
|
||
ownId = tWord;
|
||
// addLogText(QString(" ownID = %1").arg(ownId));
|
||
|
||
|
||
break;
|
||
case 3: // <20><><EFBFBD><EFBFBD>
|
||
// if (nTmr->isActive()) nTmr->stop();
|
||
|
||
counterForTargets += 1;
|
||
counterForTargets = counterForTargets % 18;
|
||
|
||
if (tmrCheckTaskStop->isActive()) tmrCheckTaskStop->stop();
|
||
tmrCheckTaskStop->start(3500);
|
||
|
||
d>>tWord;
|
||
cnt = tWord;
|
||
d>>tLong;
|
||
qint16 lId;
|
||
|
||
|
||
for (int i=0;i<cnt;i++)
|
||
{
|
||
d>>lId;
|
||
d>>tWord;
|
||
tarMesType = tWord;
|
||
|
||
d>>tWord;
|
||
d>>tByte>>tByte;
|
||
|
||
|
||
d>>fx>>fy>>fh;
|
||
|
||
|
||
|
||
d>>tFloat>>tFloat>>tFloat;
|
||
d>>vx>>vy>>vh;
|
||
d>>tLong;
|
||
d>>tByte;
|
||
d>>tByte;
|
||
int CDType= tByte;
|
||
|
||
d>>tByte;
|
||
// addLogText(tr(" size = %1").arg(tByte));
|
||
|
||
buf.resize(tByte);
|
||
for (int j=0;j<buf.size(); j++)
|
||
{
|
||
d>>tByte; buf[j] = tByte;
|
||
}
|
||
gosPr = 0;
|
||
if (buf.size()==1)
|
||
{if (int(buf[0])==0) gosPr = 2; else gosPr = 1;}
|
||
|
||
// addLogText(QString(" air target = %2 %1 %3 ").arg(tarMesType).arg(lId).arg(gosPr));
|
||
|
||
if (CDType==1) {
|
||
if (counterForTargets == 1 && lId /*&& tarMesType!=13
|
||
&& tarMesType!=14*/)
|
||
{
|
||
if (tarMesType==0)
|
||
{
|
||
if (hashIdToNum.contains(lId)) {
|
||
ret = hashIdToNum[lId];
|
||
if (targets[ret]->exist) {
|
||
targets[ret]->deleteTarget();
|
||
hashIdToNum.remove(lId);
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
addTarget(lId, 1, gosPr, fx/100, -fy/100, fh/100, vx/10, -vy/10);
|
||
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
break;
|
||
case 6: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
|
||
gro = 0;
|
||
d>>tWord>>tLong>>tWord;
|
||
uid = tWord;
|
||
// addLogText(QString(" gr %1").arg(uid));
|
||
|
||
gro = grObj.at(uid);
|
||
gro->exist = true;
|
||
|
||
d>>tWord;
|
||
gro->setType(tWord);
|
||
d>>fx>>fy>>fh;
|
||
gro->setPos(qreal(fx/100),(qreal)-fy/100);
|
||
d>>tByte;
|
||
gro->setBoegotov(tByte);
|
||
d>>tWord;
|
||
gro->setRockets(tWord);
|
||
|
||
|
||
break;
|
||
|
||
case 9:
|
||
|
||
d>>tWord>>tLong>>tWord;
|
||
nAb = tWord;
|
||
|
||
d>>tWord;
|
||
tarNum = tWord;
|
||
|
||
d >> fx >> fy;
|
||
|
||
d >> tByte;
|
||
code2Z = tByte;
|
||
|
||
if (tarNum == 0) // <20><><EFBFBD>
|
||
{
|
||
st=QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> < %1 ZZ %2%3 '%4'").arg(nAb).arg((code2Z<10)?"0":"").arg(code2Z).arg(str2Z[code2Z]);
|
||
// st.append(QString::number(nAb));
|
||
// st.append(" ZZ ");
|
||
// if (code2Z<10) st.append("0");
|
||
// st.append(QString::number(code2Z));
|
||
// st.append(" '");
|
||
// st.append(str2Z[code2Z]);
|
||
// st.append("'");
|
||
}
|
||
else
|
||
{
|
||
tarNum = findTargetFromId(tarNum);
|
||
if (tarNum!=-1)
|
||
{
|
||
st = QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> < %1 <20><> %2 ZZ %5 %3 '%4'").arg(nAb).arg(tarNum+1).arg(code2Z).arg(str2Z[code2Z]).arg((code2Z<10)?"0":"");
|
||
|
||
|
||
|
||
}
|
||
else
|
||
{
|
||
st = QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> < %1 ZZ %4 %2 '%3'").arg(nAb).arg(code2Z).arg(str2Z[code2Z]).arg((code2Z<10)?"0":"");
|
||
}
|
||
|
||
}
|
||
|
||
|
||
addLogText(st);
|
||
|
||
break;
|
||
default:
|
||
break;
|
||
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|
||
}
|
||
|
||
void Widget::processSendingDatagrams(QByteArray buf, int port)
|
||
{
|
||
udpSend->writeDatagram(buf.data(), buf.size(), QHostAddress("192.168.1.255"), port);
|
||
}
|
||
|
||
void Widget::sendCU(int nAb, int ZZ, int uid, qreal x, qreal y)
|
||
{
|
||
|
||
QByteArray buf;
|
||
QDataStream d(&buf, QIODevice::WriteOnly);
|
||
d.setByteOrder(QDataStream::LittleEndian);
|
||
d.setFloatingPointPrecision(QDataStream::SinglePrecision);
|
||
|
||
d <<(qint16)25 << (qint16) currentTaskNum << (qint16)7 << (qint16)1;
|
||
d <<(qint32)0 << (qint16) nAb;
|
||
|
||
if (uid<0) uid=0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
d << (qint16) uid;
|
||
d << (float) x << (float)y; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
d << (qint8)ZZ;
|
||
|
||
|
||
if (nAb!=0) processSendingDatagrams(buf);
|
||
|
||
QString st;
|
||
if (uid && hashIdToNum.contains(uid))
|
||
{
|
||
st = QString::fromLocal8Bit("<EFBFBD><EFBFBD> > %1 <20><> %2 ZZ %3%4 '%5'").arg(nAb).arg(hashIdToNum[uid]+1).arg((ZZ<10)?"0":"").arg(ZZ).arg(str2Z[ZZ]);
|
||
addLogText(st);
|
||
st = QString::fromLocal8Bit("uid = %1").arg(uid);
|
||
addLogText(st);
|
||
}
|
||
else
|
||
{
|
||
|
||
if ((nAb>0)&&(nAb<=15))
|
||
{
|
||
cmdKO[nAb].x = y/100;
|
||
cmdKO[nAb].y = -x/100;
|
||
cmdKO[nAb].ZZ = ZZ;
|
||
st = QString::fromLocal8Bit("<EFBFBD><EFBFBD> > %1 ZZ %2%3 '%4'").arg(nAb).arg((ZZ<10)?"0":"").arg(ZZ).arg(str2Z[ZZ]);
|
||
if ((ZZ==77)||(ZZ==66))
|
||
{
|
||
cmdKO[nAb].ZZ=99;
|
||
}
|
||
else
|
||
addLogText(st);
|
||
}
|
||
else
|
||
{
|
||
if (nAb==0)
|
||
{
|
||
for (int ii=1;ii<cmdKO.size();ii++)
|
||
{
|
||
cmdKO[ii].x=0;
|
||
cmdKO[ii].y=0;
|
||
cmdKO[ii].ZZ=ZZ;
|
||
st = QString::fromLocal8Bit("<EFBFBD><EFBFBD> > %1 ZZ %2%3 '%4'").arg(ii).arg((ZZ<10)?"0":"").arg(ZZ).arg(str2Z[ZZ]);
|
||
if (grObj[ii]->exist)
|
||
{
|
||
addLogText(st);
|
||
|
||
buf[12]=ii;
|
||
|
||
processSendingDatagrams(buf);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
|
||
}
|
||
|
||
void Widget::sendKRU(int nAb, int zoneType)
|
||
{
|
||
QByteArray buf;
|
||
QDataStream d(&buf, QIODevice::WriteOnly);
|
||
d.setByteOrder(QDataStream::LittleEndian);
|
||
d.setFloatingPointPrecision(QDataStream::SinglePrecision);
|
||
d<< (qint16)63 << (qint16) currentTaskNum << (qint16)8 << (qint16)1;
|
||
d<<(qint32)0 << (qint16) nAb;
|
||
|
||
groundObj *gr;
|
||
qreal an=-1, an_2=-1;
|
||
|
||
if ((nAb>0)&&(nAb<7))
|
||
{
|
||
gr = grObj[nAb];
|
||
d<<(qint8)zoneType;
|
||
an_2 = (gr->angle2-gr->angle1)/2;
|
||
an = gr->angle1+an_2;
|
||
an_2=an_2*2;
|
||
if (an_2<0) an_2+=180;
|
||
if (an<0) an+=360;
|
||
if (an>=360) an-=360;
|
||
|
||
|
||
d << (float)an << (float)an_2;
|
||
// addLogText(tr("angle [%1 %2]").arg(an).arg(an_2));
|
||
for (int i =0; i <10; i++) d<< (float)0;
|
||
|
||
}
|
||
else
|
||
{
|
||
d<<(qint8)0;
|
||
for (int i=0;i<12;i++) d << (float)0;
|
||
|
||
}
|
||
|
||
// QString s = QString("bis = ");
|
||
// s.append( QString::number(an, 'f',0));
|
||
// s.append( " len/2 = ");
|
||
// s.append(QString::number(an_2, 'f',0));
|
||
|
||
// addLogText(s);
|
||
|
||
processSendingDatagrams(buf);
|
||
}
|
||
|
||
void Widget::synhrTimeout()
|
||
{
|
||
// addLogText("synhrTime");
|
||
QByteArray buf;
|
||
QDataStream d(&buf, QIODevice::WriteOnly);
|
||
d.setByteOrder(QDataStream::LittleEndian);
|
||
d<< (qint16)20;
|
||
|
||
if (currentTaskNum==0) // <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
{
|
||
d << (qint16)0;
|
||
}
|
||
else
|
||
{
|
||
d<<(qint16)currentTaskNum;
|
||
}
|
||
|
||
d << (qint16)1 << (qint16)1;
|
||
|
||
QTime time = QTime::currentTime();
|
||
d << (qint8)time.hour()<<(qint8)time.minute()<<(qint8)time.second()<<((quint8) (time.msec()/10)); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 999 - <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> 1 <20><><EFBFBD><EFBFBD>
|
||
d << (qint16)10 << (qint16)currentTaskNum << (qint16)1 << (qint16)0 ;
|
||
|
||
processSendingDatagrams(buf, 6690);
|
||
|
||
|
||
}
|
||
|
||
void Widget::initUprav()
|
||
{
|
||
gsc1 = new QGraphicsScene(this);
|
||
gsc1->setSceneRect(0,0,360,460);
|
||
|
||
gscUprav = new QGraphicsScene(this);
|
||
gscUprav->setSceneRect(0,0,360,4600);
|
||
|
||
gvUprav = ui->graphicsView_3;
|
||
gvUprav->setScene(gsc1);
|
||
gvUprav->centerOn(0,0);
|
||
gvUprav->setLinks(&grObj, &targets);
|
||
|
||
|
||
ui->graphicsView_4->setScene(gscUprav);
|
||
ui->graphicsView_4->centerOn(0,0);
|
||
QGraphicsLineItem *li;
|
||
|
||
|
||
for (int i=69; i<gscUprav->width(); i+=45)
|
||
{
|
||
li = new QGraphicsLineItem();
|
||
li->setPen(QPen(Qt::lightGray));
|
||
li->setLine(i, 0, i, gscUprav->height());
|
||
gscUprav->addItem(li);
|
||
|
||
}
|
||
|
||
for (int i=60; i<gscUprav->height(); i+=45)
|
||
{
|
||
li = new QGraphicsLineItem();
|
||
li->setPen(QPen(Qt::lightGray));
|
||
li->setLine(0, i, gscUprav->width(), i);
|
||
gscUprav->addItem(li);
|
||
|
||
}
|
||
|
||
|
||
tmr = new QTimer(this);
|
||
connect(tmr, SIGNAL(timeout()), this, SLOT(refreshUprTab()));
|
||
tmr->start(1000);
|
||
|
||
}
|
||
|
||
void Widget::magicTemp()
|
||
{
|
||
ui->comboBox_4->setCurrentIndex(3);
|
||
}
|
||
|
||
void Widget::initGraph()
|
||
{
|
||
|
||
|
||
|
||
gsc = new QGraphicsScene(this);
|
||
gsc->setSceneRect(-11310,-11310,22610, 22610); // <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
|
||
yellowBrick = gsc->addRect(0,0,1,1,QPen(QColor(Qt::yellow)));
|
||
|
||
gv1 = ui->graphicsView;
|
||
gv2 = ui->graphicsView_2;
|
||
|
||
gv1->uid = 0x1;
|
||
gv2->uid = 0x2;
|
||
|
||
setReper(QPointF(0,0));
|
||
setOwnTS(QPointF(0,0));
|
||
curCentr = ownTS;
|
||
|
||
gv1->setScene(gsc);
|
||
|
||
gv1->centerOn(curCentr);
|
||
gv1->setDrawCoords();
|
||
|
||
gv2->setScene(gsc);
|
||
|
||
gv2->centerOn(reper);
|
||
gv2->setDrawCoords(false);
|
||
|
||
// gArc = new graphicsArcItem();
|
||
// gArc->setPos(ownTS);
|
||
// gArc->setColor(Qt::cyan);
|
||
// gArc->setAngles(15, 45);
|
||
// gArc->setRadius(400);
|
||
// gsc->addItem(gArc);
|
||
|
||
|
||
grObj[0]->setPos(ownTS);
|
||
grObj[0]->setType(0);
|
||
|
||
for (int i=0; i<grObj.count(); i++)
|
||
{
|
||
gsc->addItem(grObj[i]);
|
||
}
|
||
|
||
for (int i=0; i<targets.count(); i++)
|
||
{
|
||
gsc->addItem(targets[i]);
|
||
|
||
}
|
||
|
||
gv1->setLinks(&grObj, &targets);
|
||
gv2->setLinks(&grObj, &targets);
|
||
|
||
}
|
||
|
||
|
||
void Widget::setCentr(QPointF p)
|
||
{
|
||
curCentr = p;
|
||
int d=grScales[ui->comboBox_2->currentIndex()]*10, d2=d*2;
|
||
|
||
|
||
gv1->fitInView(curCentr.x()-d,curCentr.y()-d,d2,d2, Qt::KeepAspectRatioByExpanding);
|
||
gv1->setSceneRect(curCentr.x()-d,curCentr.y()-d,d2,d2);
|
||
|
||
QRectF r = gv1->sceneRect();
|
||
QString s = QString("%1x%2").arg(r.width()/10).arg(r.height()/10);
|
||
|
||
ui->pushButton_41->setText(s);
|
||
|
||
r.setTopLeft(r.topLeft()-QPointF(5,5));
|
||
r.setBottomRight(r.bottomRight()+QPointF(5, 5));
|
||
|
||
|
||
|
||
yellowBrick->setRect(r);
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
void Widget::setOwnTS(QPointF p)
|
||
{
|
||
ownTS = p;
|
||
}
|
||
|
||
void Widget::setReper(QPointF p)
|
||
{
|
||
reper = p;
|
||
gv1->reper = p;
|
||
gv2->reper = p;
|
||
|
||
}
|
||
|
||
void Widget::renewArmWin()
|
||
{
|
||
QDateTime curTime = QDateTime::currentDateTime();
|
||
QString s;
|
||
s = curTime.toString("dd-MM-yyyy");
|
||
ui->labelDate->setText(s);
|
||
s = curTime.toString("hh:mm:ss");
|
||
ui->labelTime->setText(s);
|
||
|
||
|
||
ui->pbARM1->setStyleSheet("background-color: rgb(0, 220, 100)");
|
||
ui->pbRLS->setStyleSheet("background-color: rgb(0, 220, 100)");
|
||
// ui->pbARM2->setStyleSheet("background-color: rgb(0, 220, 100)");
|
||
// ui->pbV1->setStyleSheet("background-color: rgb(0, 220, 100)");
|
||
|
||
|
||
}
|
||
|
||
void Widget::addLogText(QString s)
|
||
{
|
||
QDateTime t = QDateTime::currentDateTime();
|
||
s.prepend(t.toString("hh:mm:ss "));
|
||
ui->textEdit->append(s);
|
||
}
|
||
|
||
void Widget::centerOnReper()
|
||
{
|
||
setCentr(reper);
|
||
|
||
}
|
||
void Widget::centerOnTS()
|
||
{
|
||
setCentr(ownTS);
|
||
}
|
||
|
||
void Widget::createMenu1()
|
||
{
|
||
QFont font(ui->label_2->font());
|
||
font.setPointSizeF(8);
|
||
ui->label_2->setFont(font);
|
||
|
||
QList<QAction*> la;
|
||
|
||
menu1 = new QMenuBar(ui->Menu1);
|
||
menu1->setGeometry(5,25,280,28);
|
||
|
||
QFont lf = menu1->font();
|
||
lf.setPointSizeF(8);
|
||
menu1->setFont(lf);
|
||
|
||
mSelect = menu1->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
m1Sel = mSelect->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"));
|
||
la.clear();
|
||
la<<m1Sel_a1<<m1Sel_a2;
|
||
m1Sel->addActions(la);
|
||
|
||
mSelect->addAction(m1SelVO);
|
||
m1SelNO = mSelect->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>"));
|
||
la.clear();
|
||
la<<m1SelNO_a1<<m1SelNO_a2;
|
||
m1SelNO->addActions(la);
|
||
|
||
m1Soderzh = mSelect->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"));
|
||
|
||
la.clear();
|
||
la<<m1Soderzh_a1<<m1Soderzh_a2;
|
||
m1Soderzh->addActions(la);
|
||
|
||
la.clear();
|
||
la<<m1CharRLS<<m1CharTarg<<m1CharPeleng<<m1Table;
|
||
mSelect->addActions(la);
|
||
|
||
m1Coord = mSelect->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
la.clear();
|
||
la<<m1Coord_a1<<m1Coord_a2;
|
||
m1Coord->addActions(la);
|
||
|
||
la.clear();
|
||
la<<m1MessRLS<<m1Trace;
|
||
mSelect->addActions(la);
|
||
|
||
|
||
|
||
|
||
mParam = menu1->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
m2Centr = mParam->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
la.clear();
|
||
la<<m2Centr_a1<<m2Centr_a2;
|
||
m2Centr->addActions(la);
|
||
la.clear();
|
||
la<<m2Temp<<m2Draw;
|
||
mParam->addActions(la);
|
||
m2Font = mParam->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
la.clear();
|
||
la<<m2Font_a1<<m2Font_a2;
|
||
m2Font->addActions(la);
|
||
mParam->addAction(m2Select);
|
||
mParam->addSeparator();
|
||
mParam->addAction(m2Save);
|
||
|
||
|
||
mMap = menu1->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
la.clear();
|
||
la<<m3Open<<m3Bright<<m3Layers;
|
||
mMap->addActions(la);
|
||
|
||
la.clear();
|
||
|
||
|
||
}
|
||
|
||
|
||
void Widget::createActions1()
|
||
{
|
||
m1Sel_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>..."), this);
|
||
m1Sel_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>..."), this);
|
||
m1SelVO = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>"), this);
|
||
|
||
m1SelNO_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>..."), this);
|
||
m1SelNO_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
|
||
|
||
m1Soderzh_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>..."), this);
|
||
m1Soderzh_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
|
||
|
||
m1CharRLS = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>"), this);
|
||
m1CharTarg = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m1CharPeleng = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m1Table = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
|
||
m1Coord_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>)"), this);
|
||
m1Coord_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"), this);
|
||
|
||
m1MessRLS = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<>122-1"), this);
|
||
m1Trace = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
|
||
|
||
|
||
m2Centr_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
|
||
connect(m2Centr_a1, SIGNAL(triggered()), this, SLOT(centerOnReper()));
|
||
|
||
m2Centr_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>"), this);
|
||
connect(m2Centr_a2, SIGNAL(triggered()), this, SLOT(centerOnTS()));
|
||
|
||
m2Temp = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
|
||
m2Draw = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
|
||
m2Font_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"), this);
|
||
m2Font_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
|
||
m2Select = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>..."), this);
|
||
m2Save = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
|
||
m3Open = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
|
||
m3Bright = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
|
||
m3Layers = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
|
||
|
||
|
||
}
|
||
|
||
void Widget::createMenu2()
|
||
{
|
||
QList<QAction*> la;
|
||
|
||
menu2 = new QMenuBar(ui->Menu2);
|
||
menu2->setGeometry(0,0,680,25);
|
||
|
||
QFont lf = menu2->font();
|
||
lf.setPointSizeF(8);
|
||
menu2->setFont(lf);
|
||
|
||
mPrep = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
mDev = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
mSopr = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."));
|
||
mObob = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
mUprav = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
mReg = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
mTren = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
mFK = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD>"));
|
||
mExit = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
|
||
|
||
|
||
|
||
la.clear();
|
||
la<<m4Conf<<m4Reper<<m4Mesto<<m4Reglam<<m4TTX<<m4Date;
|
||
mPrep->addActions(la);
|
||
m4PerC = mPrep->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
la.clear();
|
||
la<<m4PerC_a1<<m4PerC_a2<<m4PerC_a3;
|
||
m4PerC->addActions(la);
|
||
mPrep->addAction(m4Table);
|
||
mPrep->addAction(m4Resend);
|
||
mPrep->addSeparator();
|
||
mPrep->addAction(m4Save);
|
||
mPrep->addAction(m4Load);
|
||
|
||
la.clear();
|
||
la<<m5RST<<m5RLS<<m5R910;
|
||
mDev->addActions(la);
|
||
|
||
la.clear();
|
||
la<<m6AZ<<m6AZPT<<m6Manual;
|
||
mSopr->addActions(la);
|
||
|
||
la.clear();
|
||
la<<m7Trace<<m7Otozhd<<m7Opov;
|
||
mObob->addActions(la);
|
||
m7Ukr = mObob->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
la.clear();
|
||
for (int i=0; i<8; i++) la<<m7Ukr_1[i];
|
||
m7Ukr->addActions(la);
|
||
|
||
la.clear();
|
||
for (int i=0; i<6; i++) la<<m8Upr[i];
|
||
mUprav->addActions(la);
|
||
|
||
la.clear();
|
||
for (int i=0; i<5; i++) la<<m9Reg[i];
|
||
mReg->addActions(la);
|
||
|
||
la.clear();
|
||
for (int i=0; i<7; i++) la<<m10Tren[i];
|
||
mTren->addActions(la);
|
||
m10ImitVKP = mTren->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>"));
|
||
m10ImitVKP->addAction(m10ImitVKP_a1);
|
||
m10ImitVKP->addAction(m10ImitVKP_a2);
|
||
mTren->addAction(m10Tren[7]);
|
||
|
||
la.clear();
|
||
for (int i=0; i<7; i++) la<<m11FK[i];
|
||
mFK->addActions(la);
|
||
|
||
mExit->addAction(m12Restart);
|
||
mExit->addAction(m12Exit);
|
||
|
||
|
||
connect(ui->pb_f1, SIGNAL(clicked()), this, SLOT(msAirTicket()));
|
||
connect(ui->pb_f2, SIGNAL(clicked()), this, SLOT(msAbnTicket()));
|
||
connect(ui->pb_f4, SIGNAL(clicked()), this, SLOT(msResetTarget()));
|
||
connect(ui->pb_f5, SIGNAL(clicked()), this, SLOT(msKillTarget()));
|
||
connect(ui->pb_f6, SIGNAL(clicked()), this, SLOT(msResetCmd()));
|
||
connect(ui->pb_f7, SIGNAL(clicked()), this, SLOT(msKzsTarget()));
|
||
connect(ui->pb_f8, SIGNAL(clicked()), this, SLOT(msVvod2Z()));
|
||
|
||
|
||
}
|
||
|
||
void Widget::createActions2()
|
||
{
|
||
m4Conf = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> Ctrl+11"), this);
|
||
m4Reper = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+12"), this);
|
||
m4Mesto = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+13"), this);
|
||
m4Reglam = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>-498<39><38><EFBFBD> Ctrl+14"), this);
|
||
m4TTX = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+15"), this);
|
||
m4Date = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD> Ctrl+16"), this);
|
||
m4PerC_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+17"), this);
|
||
m4PerC_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+18"), this);
|
||
m4PerC_a3 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> 1 <20> <20><><EFBFBD><EFBFBD> 2 Ctrl+19"), this);
|
||
m4Table = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m4Resend = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m4Save = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m4Load = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
|
||
m5RST = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> Ctrl+23"), this);
|
||
m5RLS = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Ctrl+24"), this);
|
||
m5R910 = new QAction(QString::fromLocal8Bit("<EFBFBD>910<EFBFBD> Ctrl+25"), this);
|
||
|
||
m6AZ = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+31"), this);
|
||
m6AZPT = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ctrl+32"), this);
|
||
m6Manual = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> Ctrl+33"), this);
|
||
|
||
m7Trace = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+41"), this);
|
||
m7Otozhd = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+42"), this);
|
||
m7Opov = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+43"), this);
|
||
|
||
m7Ukr_1[0] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m7Ukr_1[1] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m7Ukr_1[2] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m7Ukr_1[3] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m7Ukr_1[4] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m7Ukr_1[5] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m7Ukr_1[6] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m7Ukr_1[7] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
|
||
m8Upr[0] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+51"), this);
|
||
connect(m8Upr[0], SIGNAL(triggered()), this, SLOT(msCtrlModes()));
|
||
m8Upr[1] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+52"), this);
|
||
connect(m8Upr[1], SIGNAL(triggered()), this, SLOT(msVvodSectOtvet()));
|
||
m8Upr[2] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+53"), this);
|
||
m8Upr[3] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ctrl+54"), this);
|
||
m8Upr[4] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> Ctrl+55"), this);
|
||
m8Upr[5] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> Ctrl+56"), this);
|
||
|
||
m9Reg[0] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+62"), this);
|
||
m9Reg[1] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+63"), this);
|
||
m9Reg[2] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+64"), this);
|
||
m9Reg[3] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+65"), this);
|
||
m9Reg[4] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+66"), this);
|
||
|
||
m10Tren[0] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+71"), this);
|
||
m10Tren[1] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+72"), this);
|
||
m10Tren[2] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+73"), this);
|
||
m10Tren[3] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+74"), this);
|
||
m10Tren[4] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+75"), this);
|
||
m10Tren[5] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+76"), this);
|
||
m10Tren[6] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
|
||
m10Tren[7] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+79"), this);
|
||
m10ImitVKP_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD>, <20><>, <20><> Ctrl+77"), this);
|
||
m10ImitVKP_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> Ctrl+78"), this);
|
||
|
||
|
||
m11FK[0] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> Ctrl+81"), this);
|
||
m11FK[1] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+82"), this);
|
||
m11FK[2] = new QAction(QString::fromLocal8Bit("<EFBFBD>911 Ctrl+83"), this);
|
||
m11FK[3] = new QAction(QString::fromLocal8Bit("<EFBFBD>-498<39><38><EFBFBD> Ctrl+84"), this);
|
||
m11FK[4] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D> Ctrl+85"), this);
|
||
m11FK[5] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> Ctrl+86"), this);
|
||
m11FK[6] = new QAction(QString::fromLocal8Bit("<EFBFBD>910<EFBFBD> Ctrl+89"), this);
|
||
|
||
m12Restart = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Ctrl+95"), this);
|
||
m12Exit = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+96"), this);
|
||
|
||
|
||
}
|
||
|
||
void Widget::on_pushButton_40_clicked()
|
||
{
|
||
ui->pushButton_39->setChecked(false);
|
||
ui->pushButton_38->setChecked(false);
|
||
ui->pushButton_40->setChecked(true);
|
||
ui->label_2->setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"));
|
||
ui->label_2->setStyleSheet("color: black");
|
||
|
||
}
|
||
|
||
void Widget::on_pushButton_39_clicked()
|
||
{
|
||
ui->pushButton_39->setChecked(true);
|
||
ui->pushButton_38->setChecked(false);
|
||
ui->pushButton_40->setChecked(false);
|
||
ui->label_2->setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"));
|
||
ui->label_2->setStyleSheet("color: black");
|
||
|
||
}
|
||
|
||
void Widget::on_pushButton_38_clicked()
|
||
{
|
||
|
||
ui->pushButton_39->setChecked(false);
|
||
ui->pushButton_38->setChecked(true);
|
||
ui->pushButton_40->setChecked(false);
|
||
ui->label_2->setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"));
|
||
ui->label_2->setStyleSheet("color: red");
|
||
|
||
QMessageBox msg(this);
|
||
msg.setWindowTitle(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"));
|
||
msg.setIcon(QMessageBox::Information);
|
||
msg.setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
msg.addButton(QString::fromLocal8Bit("<EFBFBD><EFBFBD>"),QMessageBox::AcceptRole);
|
||
|
||
|
||
msg.exec();
|
||
|
||
}
|
||
|
||
|
||
void Widget::on_comboBox_2_currentIndexChanged(int index)
|
||
{
|
||
|
||
setCentr(curCentr);
|
||
QTimer::singleShot(50,this, SLOT(setCentr()));
|
||
|
||
|
||
|
||
}
|
||
|
||
void Widget::on_comboBox_4_currentIndexChanged(int index)
|
||
{
|
||
int d=grScales[index]*10, d2=d*2;
|
||
gv2->fitInView(reper.x()-d,reper.y()-d,d2,d2, Qt::KeepAspectRatioByExpanding);
|
||
gv2->setSceneRect(reper.x()-d,reper.y()-d,d2,d2);
|
||
|
||
gv2->centerOn(reper);
|
||
|
||
QRectF r = gv2->sceneRect();
|
||
QString s = QString("%1x%2").arg(r.width()/10).arg(r.height()/10);
|
||
|
||
ui->pushButton_50->setText(s);
|
||
|
||
}
|
||
|
||
void Widget::keyPressEvent ( QKeyEvent *e )
|
||
{
|
||
|
||
// int c = e->key();
|
||
// static int cOld=0;
|
||
// int res = 0;
|
||
bool fl=true; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
//// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> Crtl+1x, Crtl+2x, Crtl+5x <20> Crtl+9x
|
||
// if (e->modifiers() & Qt::ControlModifier)
|
||
// {
|
||
// if ((c>=0x30) && (c<=0x39))
|
||
// {
|
||
// if ((cOld==0x31)||(cOld==0x32)||(cOld==0x35)||(cOld==0x39))
|
||
// {
|
||
// res = (cOld-0x30)*10+c-0x30;
|
||
//// ui->lineEdit->setText(QString::number(res, 10));
|
||
|
||
// switch (res)
|
||
// {
|
||
// case 21:
|
||
////
|
||
// break;
|
||
|
||
// default:
|
||
// break;
|
||
// }
|
||
|
||
|
||
// }
|
||
// cOld = c;
|
||
// }
|
||
// else
|
||
// cOld = 0;
|
||
|
||
|
||
// fl =false;
|
||
// }
|
||
|
||
// if (e->modifiers() & Qt::AltModifier)
|
||
// {
|
||
// switch (c) {
|
||
// case 0x31:
|
||
|
||
// releaseKeyboard();
|
||
// break;
|
||
// case 0x32:
|
||
|
||
// releaseKeyboard();
|
||
// break;
|
||
// default:
|
||
// break;
|
||
// }
|
||
// fl = false;
|
||
|
||
// }
|
||
|
||
switch (e->key())
|
||
{
|
||
case Qt::Key_F1:
|
||
|
||
// addLogText("F1 pressed");
|
||
QTimer::singleShot(100, this, SLOT(msAirTicket()));
|
||
break;
|
||
case Qt::Key_F2:
|
||
|
||
// addLogText("F2 pressed");
|
||
QTimer::singleShot(100, this, SLOT(msAbnTicket()));
|
||
break;
|
||
case Qt::Key_F3:
|
||
|
||
// addLogText("F3 pressed");
|
||
|
||
|
||
break;
|
||
case Qt::Key_F4:
|
||
|
||
QTimer::singleShot(100, this, SLOT(msResetTarget()));
|
||
// addLogText("F4 pressed");
|
||
break;
|
||
case Qt::Key_F5:
|
||
|
||
// addLogText("F5 pressed");
|
||
QTimer::singleShot(100, this, SLOT(msKillTarget()));
|
||
break;
|
||
case Qt::Key_F6:
|
||
|
||
// addLogText("F6 pressed");
|
||
QTimer::singleShot(100, this, SLOT(msResetCmd()));
|
||
break;
|
||
case Qt::Key_F7:
|
||
|
||
//// addLogText("F7 pressed");
|
||
QTimer::singleShot(100, this, SLOT(msKzsTarget()));
|
||
break;
|
||
case Qt::Key_F8:
|
||
|
||
QTimer::singleShot(100, this, SLOT(msVvod2Z()));
|
||
// addLogText("F8 pressed");
|
||
break;
|
||
case Qt::Key_F9:
|
||
|
||
// addLogText("F9 pressed");
|
||
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
|
||
if (fl) QWidget::keyPressEvent(e);
|
||
}
|
||
|
||
void Widget::msResetTarget()
|
||
{
|
||
vvodnomeratrace *vnt;
|
||
vnt = new vvodnomeratrace(this);
|
||
|
||
vnt->setTitle(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||
vnt->exec();
|
||
int num = vnt->result();
|
||
vnt->close();
|
||
if (num>0)
|
||
{
|
||
targets[num-1]->exist = false;
|
||
targets[num-1]->uid = -1;
|
||
hashIdToNum[num]=-1;
|
||
}
|
||
}
|
||
|
||
void Widget::refreshUprTab()
|
||
{
|
||
|
||
upravLine *ul;
|
||
bool fl;
|
||
|
||
bool dbgFlag=false;
|
||
|
||
if (tmrCheckTaskStop->isActive())
|
||
{
|
||
|
||
for (int i=0;i<100; i++)
|
||
{
|
||
if (uLines[i]!=0)
|
||
{
|
||
if (uLines[i]->tar->exist)
|
||
{
|
||
if (!uLines[i]->tar->haveCU())
|
||
{
|
||
delete uLines[i];
|
||
uLines[i]=0;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
delete uLines[i];
|
||
uLines[i]=0;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|
||
for (int i=0; i<targets.count(); i++)
|
||
{
|
||
if (targets[i]->exist)
|
||
{
|
||
if (targets[i]->haveCU())
|
||
{
|
||
fl = true;
|
||
for (int j=0; j<100; j++)
|
||
{
|
||
if (uLines[j]!=0)
|
||
if (uLines[j]->tar == targets[i])
|
||
{
|
||
fl = false;
|
||
break;
|
||
}
|
||
}
|
||
if (fl) // true - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||
{
|
||
for (int j=0;j<100;j++)
|
||
{
|
||
if (uLines[j]==0)
|
||
{
|
||
ul = new upravLine();
|
||
ul->setTarget(targets[i]);
|
||
gscUprav->addItem(ul);
|
||
// ul->setPos(0, 60+j*45);
|
||
uLines[j]=ul;
|
||
|
||
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
// if (uLines.indexOf(targets[i])==-1)
|
||
// {
|
||
|
||
|
||
// ul = new upravLine();
|
||
// ul->setTarget(targets[i]);
|
||
// gscUprav->addItem(ul);
|
||
// ul->setPos(0, 60+i*45);
|
||
|
||
// if (uLines.indexOf(0)!=-1)
|
||
// {
|
||
// uLines.at(uLines.indexOf(0)) = ul;
|
||
// }
|
||
// else
|
||
// uLines<<ul;
|
||
// }
|
||
}
|
||
else {
|
||
for (int j=0; j<100; j++)
|
||
{
|
||
if (uLines[j]!=0)
|
||
if (uLines[j]->tar == targets[i]) {
|
||
delete uLines[j];
|
||
uLines[j]=0;
|
||
dbgFlag = true;
|
||
break;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
QQueue<int> q;
|
||
for (int i=0; i<100; ++i) {
|
||
if (uLines[i]==0)
|
||
q.enqueue(i);
|
||
else if (!q.empty()) {
|
||
int pos = q.dequeue();
|
||
std::swap(uLines[i], uLines[pos]);
|
||
q.enqueue(i);
|
||
}
|
||
}
|
||
|
||
for (int i=0; i<100; ++i)
|
||
if (uLines[i])
|
||
uLines[i]->setPos(0, 60+i*45);
|
||
|
||
|
||
|
||
gsc1->update();
|
||
|
||
gscUprav->update();
|
||
}
|
||
|
||
void Widget::msVvodSectOtvet()
|
||
{
|
||
vvodSectOtvet *l=new vvodSectOtvet(this);
|
||
l->show();
|
||
}
|
||
|
||
void Widget::msAirTicket()
|
||
{
|
||
int d;
|
||
vvodnomeratrace vv(this);
|
||
vv.exec();
|
||
d = vv.result();
|
||
if (d>0)
|
||
{
|
||
if (openAirTicket)
|
||
openAirTicket->close();
|
||
|
||
airTicket *airT = new airTicket(d-1, this );
|
||
openAirTicket = airT;
|
||
|
||
airT->show();
|
||
curAirTicketNum = d;
|
||
|
||
}
|
||
|
||
vv.close();
|
||
}
|
||
|
||
void Widget::msAirTicketFree()
|
||
{
|
||
int d = curAirTicketNum;
|
||
if ((d>=0)&&(targets.at(d)->exist))
|
||
{
|
||
if (openAirTicket)
|
||
openAirTicket->close();
|
||
|
||
airTicket *airT = new airTicket(d, this);
|
||
openAirTicket = airT;
|
||
airT->show();
|
||
}
|
||
|
||
}
|
||
|
||
void Widget::changeOpenWidget(QObject *p, int code)
|
||
{
|
||
if (openWidget) openWidget->close();
|
||
openWidgetType = code;
|
||
openWidget = (QWidget*)p;
|
||
}
|
||
|
||
void Widget::clearOpenWidget()
|
||
{
|
||
openWidget = 0;
|
||
openWidgetType = 0;
|
||
}
|
||
|
||
void Widget::msKillTarget()
|
||
{
|
||
killTarget *killT = new killTarget(this);
|
||
changeOpenWidget(killT);
|
||
killT->show();
|
||
}
|
||
|
||
void Widget::msKzsTarget()
|
||
{
|
||
kzsTarget *kzsT = new kzsTarget(this);
|
||
changeOpenWidget(kzsT);
|
||
kzsT->show();
|
||
}
|
||
|
||
void Widget::msResetCmd()
|
||
{
|
||
resetCmd *resCmd = new resetCmd(this);
|
||
changeOpenWidget(resCmd);
|
||
resCmd->show();
|
||
}
|
||
|
||
void Widget::msVvod2Z()
|
||
{
|
||
vvod2z *l=new vvod2z(this);
|
||
changeOpenWidget(l, 2);
|
||
|
||
l->show();
|
||
}
|
||
|
||
void Widget::msAbnTicket()
|
||
{
|
||
abnticket *l=new abnticket(this);
|
||
|
||
l->show();
|
||
|
||
}
|
||
|
||
void Widget::msCtrlModes()
|
||
{
|
||
ctrlMode *l = new ctrlMode(this);
|
||
changeOpenWidget(l);
|
||
l->show();
|
||
}
|