v2
This commit is contained in:
540
mainwindow.cpp
540
mainwindow.cpp
@@ -1,24 +1,26 @@
|
||||
#include "mainwindow.h"
|
||||
//#include <WDMTMKv2.cpp>
|
||||
#include "bcmil.cpp"
|
||||
|
||||
extern TTmkEventData tmkEvD;
|
||||
extern HANDLE hRtEvent;
|
||||
extern HANDLE hEvent;
|
||||
|
||||
//#define RT_ADDR 10
|
||||
|
||||
//const int fInstMode = 1;
|
||||
#define RT_ADDR 0x1
|
||||
|
||||
unsigned short awBuf[32];
|
||||
|
||||
TMK_DATA wBase, wMaxBase, wLen;
|
||||
extern TMK_DATA wSubAddr, wState;
|
||||
extern uint8_t wAddr_RT, wRecTrans;
|
||||
|
||||
unsigned char HexBinFlag = 1; //1 - hex, 0 - bin
|
||||
int HexBinFlag = 1; //Hex - 1, Bin - 0
|
||||
extern int bcrtFlag; //RT = 0, BC = 1
|
||||
|
||||
MainWindow::MainWindow()
|
||||
{
|
||||
init_mainwindowobj();
|
||||
init_table();
|
||||
init_table_cmd();
|
||||
init_table_stat();
|
||||
init_table_dword();
|
||||
init_connections();
|
||||
}
|
||||
|
||||
@@ -28,44 +30,64 @@ void MainWindow::init_mainwindowobj()
|
||||
|
||||
Window_1 = new QWidget;
|
||||
Window_2 = new QWidget;
|
||||
Window_3 = new QWidget;
|
||||
Window_4 = new QWidget;
|
||||
|
||||
HexBinButton = new QPushButton("Hex/Bin");
|
||||
HexBinLabel = new QLabel("Hex");
|
||||
RtModeLabel = new QLabel("RT mode");
|
||||
StartRtModeButton = new QPushButton("Start RT mode");
|
||||
|
||||
CmdWordLabel = new QLabel("Enter the command word:");
|
||||
BcModeLabel = new QLabel("BC mode");
|
||||
StartBcModeButton = new QPushButton("Start BC mode");
|
||||
CmdWordLineEdit = new QLineEdit;
|
||||
EnterCmdWordButton = new QPushButton("Start");
|
||||
DataTable = new QTableWidget;
|
||||
|
||||
QGridLayout *layout_g = new QGridLayout(Window_2);
|
||||
layout_g->addWidget(HexBinButton, 0, 1);
|
||||
layout_g->addWidget(HexBinLabel, 0, 0);
|
||||
layout_g->addWidget(CmdWordLabel, 1, 0); // Row 0, Column 0
|
||||
layout_g->addWidget(CmdWordLineEdit, 2, 0);
|
||||
layout_g->addWidget(EnterCmdWordButton, 3, 0);
|
||||
HexBinLabel = new QLabel("Hex");
|
||||
HexBinButton = new QPushButton("Hex/Bin");
|
||||
|
||||
Window_2->setLayout(layout_g);
|
||||
DataTableCmd = new QTableWidget;
|
||||
DataTableStat = new QTableWidget;
|
||||
DataTableDWord = new QTableWidget;
|
||||
|
||||
QHBoxLayout *layout_h1 = new QHBoxLayout(Window_1);
|
||||
layout_h1->addWidget(HexBinLabel);
|
||||
layout_h1->addWidget(HexBinButton);
|
||||
|
||||
Window_1->setLayout(layout_h1);
|
||||
//setCentralWidget(Window_1);
|
||||
|
||||
QHBoxLayout *layout_h2 = new QHBoxLayout(Window_2);
|
||||
layout_h2->addWidget(BcModeLabel);
|
||||
layout_h2->addWidget(CmdWordLineEdit);
|
||||
|
||||
Window_2->setLayout(layout_h2);
|
||||
setCentralWidget(Window_2);
|
||||
|
||||
QVBoxLayout *layout = new QVBoxLayout(Window_1);
|
||||
layout->addWidget(Window_2);
|
||||
layout->addWidget(DataTable);
|
||||
QGridLayout *layout_g = new QGridLayout(Window_3);
|
||||
layout_g->addWidget(RtModeLabel, 1, 0);
|
||||
layout_g->addWidget(Window_2, 1, 1);
|
||||
layout_g->addWidget(StartRtModeButton, 2, 0);
|
||||
layout_g->addWidget(StartBcModeButton, 2, 1);
|
||||
|
||||
Window_1->setLayout(layout);
|
||||
setCentralWidget(Window_1);
|
||||
Window_3->setLayout(layout_g);
|
||||
setCentralWidget(Window_3);
|
||||
|
||||
QVBoxLayout *layout_v = new QVBoxLayout(Window_4);
|
||||
layout_v->addWidget(Window_1);
|
||||
layout_v->addWidget(Window_3);
|
||||
layout_v->addWidget(DataTableCmd);
|
||||
layout_v->addWidget(DataTableStat);
|
||||
layout_v->addWidget(DataTableDWord);
|
||||
|
||||
Window_4->setLayout(layout_v);
|
||||
setCentralWidget(Window_4);
|
||||
}
|
||||
|
||||
void MainWindow::init_connections()
|
||||
{
|
||||
/*connect(EnterCmdWordButton,
|
||||
connect(StartBcModeButton,
|
||||
SIGNAL(clicked()),
|
||||
this,
|
||||
SLOT(getlineedit()));*/
|
||||
/*connect(EnterCmdWordButton,
|
||||
SIGNAL(clicked()),
|
||||
this,
|
||||
SLOT(sendcmdwrd()));*/
|
||||
connect(EnterCmdWordButton,
|
||||
SLOT(getlineedit()));
|
||||
connect(StartRtModeButton,
|
||||
SIGNAL(clicked()),
|
||||
this,
|
||||
SLOT(rthandler()));
|
||||
@@ -85,67 +107,10 @@ QString intToDecString(int number)
|
||||
return QString::number(number,10);
|
||||
}
|
||||
|
||||
/*void MainWindow::getlineedit()
|
||||
QString intToHexString(int number)
|
||||
{
|
||||
qDebug() << "Entered the button command word";
|
||||
QString CmdW = CmdWordLineEdit->text();
|
||||
qDebug() << CmdW;
|
||||
|
||||
QScopedPointer<CommandWord> NewCmdWord(new CommandWord());
|
||||
NewCmdWord->description(CmdW);
|
||||
|
||||
set_item(DataTable, 0, 0, "Адрес устройства", false);
|
||||
set_item(DataTable, 0, 1, intToBinaryString(NewCmdWord->addrRTf), false);
|
||||
set_item(DataTable, 0, 2, intToDecString(NewCmdWord->addrRTf), false);
|
||||
|
||||
if(NewCmdWord->Kf)
|
||||
{
|
||||
set_item(DataTable, 1, 0, "Передача", false);
|
||||
set_item(DataTable, 1, 1, intToBinaryString(NewCmdWord->Kf), false);
|
||||
set_item(DataTable, 1, 2, intToDecString(NewCmdWord->Kf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTable, 1, 0, "Прием", false);
|
||||
set_item(DataTable, 1, 1, intToBinaryString(NewCmdWord->Kf), false);
|
||||
set_item(DataTable, 1, 2, intToDecString(NewCmdWord->Kf), false);
|
||||
}
|
||||
|
||||
if((NewCmdWord->subAddrf == 0) || (NewCmdWord->subAddrf == 31))
|
||||
{
|
||||
set_item(DataTable, 2, 0, "Режим управления", false);
|
||||
set_item(DataTable, 2, 1, intToBinaryString(NewCmdWord->subAddrf), false);
|
||||
set_item(DataTable, 2, 2, intToDecString(NewCmdWord->subAddrf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTable, 2, 0, "Подадрес", false);
|
||||
set_item(DataTable, 2, 1, intToBinaryString(NewCmdWord->subAddrf), false);
|
||||
set_item(DataTable, 2, 2, intToDecString(NewCmdWord->subAddrf), false);
|
||||
}
|
||||
|
||||
if((NewCmdWord->subAddrf == 0) || (NewCmdWord->subAddrf == 31))
|
||||
{
|
||||
set_item(DataTable, 3, 0, NewCmdWord->cmdCode.value(NewCmdWord->numDWf), false);
|
||||
set_item(DataTable, 3, 1, intToBinaryString(NewCmdWord->numDWf), false);
|
||||
set_item(DataTable, 3, 2, intToDecString(NewCmdWord->numDWf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(NewCmdWord->numDWf == 0)
|
||||
{
|
||||
set_item(DataTable, 3, 0, "Число СД", false);
|
||||
set_item(DataTable, 3, 1, intToBinaryString(32), false);
|
||||
set_item(DataTable, 3, 2, intToDecString(32), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTable, 3, 0, "Число СД", false);
|
||||
set_item(DataTable, 3, 1, intToBinaryString(NewCmdWord->numDWf), false);
|
||||
set_item(DataTable, 3, 2, intToDecString(NewCmdWord->numDWf), false);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
return QString::number(number,16);
|
||||
}
|
||||
|
||||
void MainWindow::HexBinChange()
|
||||
{
|
||||
@@ -163,31 +128,92 @@ void MainWindow::HexBinChange()
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::init_table()
|
||||
void MainWindow::getlineedit()
|
||||
{
|
||||
for (int i = 0; i < wLen; i++)
|
||||
set_item(DataTableDWord, 0, i, "%", false);
|
||||
qDebug() << "Entered the button start bc mode";
|
||||
QString CmdW = CmdWordLineEdit->text();
|
||||
qDebug() << CmdW;
|
||||
|
||||
bchandler(CmdW);
|
||||
}
|
||||
|
||||
void MainWindow::init_table_cmd()
|
||||
{
|
||||
int ColCount = 3;
|
||||
int RowCount = 4;
|
||||
QStringList header;
|
||||
header << "Биты КС" << "Бинарное представление" << "Десятичное представление";
|
||||
|
||||
DataTable->setColumnCount(ColCount);
|
||||
DataTable->setRowCount(RowCount);
|
||||
DataTable->setHorizontalHeaderLabels(header);
|
||||
DataTable->verticalHeader()->setVisible(true);
|
||||
DataTableCmd->setColumnCount(ColCount);
|
||||
DataTableCmd->setRowCount(RowCount);
|
||||
DataTableCmd->setHorizontalHeaderLabels(header);
|
||||
DataTableCmd->verticalHeader()->setVisible(true);
|
||||
|
||||
DataTable->setColumnWidth(0,200);
|
||||
DataTable->setColumnWidth(1,160);
|
||||
DataTable->setColumnWidth(2,160);
|
||||
DataTableCmd->setColumnWidth(0,200);
|
||||
DataTableCmd->setColumnWidth(1,160);
|
||||
DataTableCmd->setColumnWidth(2,160);
|
||||
|
||||
for(int i = 0; i < RowCount; i++)
|
||||
{
|
||||
DataTable->setRowHeight(i,20);
|
||||
DataTableCmd->setRowHeight(i,20);
|
||||
for(int j = 0; j < ColCount; j++)
|
||||
set_item(DataTable, i, j, "%", false);
|
||||
set_item(DataTableCmd, i, j, "%", false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::init_table_stat()
|
||||
{
|
||||
int ColCount = 3;
|
||||
int RowCount = 10;
|
||||
QStringList header;
|
||||
header << "Биты ОС" << "Бинарное представление" << "Десятичное представление";
|
||||
|
||||
DataTableStat->setColumnCount(ColCount);
|
||||
DataTableStat->setRowCount(RowCount);
|
||||
DataTableStat->setHorizontalHeaderLabels(header);
|
||||
DataTableStat->verticalHeader()->setVisible(true);
|
||||
|
||||
DataTableStat->setColumnWidth(0,180);
|
||||
DataTableStat->setColumnWidth(1,160);
|
||||
DataTableStat->setColumnWidth(2,160);
|
||||
|
||||
for(int i = 0; i < RowCount; i++)
|
||||
{
|
||||
DataTableStat->setRowHeight(i,20);
|
||||
for(int j = 0; j < ColCount; j++)
|
||||
set_item(DataTableStat, i, j, "%", false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::init_table_dword()
|
||||
{
|
||||
int ColCount = 32;
|
||||
int RowCount = 1;
|
||||
QStringList header;
|
||||
header << "СД1" << "СД2" << "СД3" << "СД4" << "СД5" << "СД6"
|
||||
<< "СД7" << "СД8" << "СД9" << "СД10" << "СД11" << "СД12"
|
||||
<< "СД13" << "СД14" << "СД15" << "СД16" << "СД17" << "СД18"
|
||||
<< "СД19" << "СД20" << "СД21" << "СД22" << "СД23" << "СД24"
|
||||
<< "СД25" << "СД26" << "СД27" << "СД28" << "СД29" << "СД30"
|
||||
<< "СД31" << "СД32";
|
||||
|
||||
DataTableDWord->setColumnCount(ColCount);
|
||||
DataTableDWord->setRowCount(RowCount);
|
||||
DataTableDWord->setHorizontalHeaderLabels(header);
|
||||
DataTableDWord->verticalHeader()->setVisible(true);
|
||||
|
||||
for(int i = 0; i < ColCount; i++)
|
||||
DataTableDWord->setColumnWidth(i, 35);
|
||||
|
||||
for(int i = 0; i < RowCount; i++)
|
||||
{
|
||||
DataTableDWord->setRowHeight(i, 20);
|
||||
for(int j = 0; j < ColCount; j++)
|
||||
set_item(DataTableDWord, i, j, "%", false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::set_item(QTableWidget *pTable, int indRow,
|
||||
int indCol, QString data, bool editFlag)
|
||||
@@ -208,107 +234,285 @@ void MainWindow::set_item(QTableWidget *pTable, int indRow,
|
||||
pTable->item(indRow, indCol)->setTextColor(color);
|
||||
}
|
||||
|
||||
/*void MainWindow::sendcmdwrd()
|
||||
void MainWindow::bchandler(QString CmdW)
|
||||
{
|
||||
qDebug() << "send1";
|
||||
bcrtFlag = 1;
|
||||
QScopedPointer<BC_MIL> NewBC(new BC_MIL(0));
|
||||
qDebug() << "send2";
|
||||
|
||||
wBase = 0;
|
||||
wMaxBase = bcgetmaxbase();
|
||||
srand(1);
|
||||
qDebug() << "bcgetmaxbase" << wMaxBase;
|
||||
|
||||
//Select base
|
||||
if (wBase > wMaxBase)
|
||||
wBase = 0;
|
||||
bcdefbase(wBase);
|
||||
qDebug() << "send3";
|
||||
|
||||
filltablecmd(CmdW);
|
||||
|
||||
//Prepare data to RT
|
||||
//wSubAddr = rand() & 0x1F;
|
||||
wSubAddr = 0x1F;;
|
||||
//if (fInstMode)
|
||||
// wSubAddr |= 0x10;
|
||||
//wLen = rand() & 0x1F;
|
||||
wLen = 0x1;
|
||||
if (wLen == 0)
|
||||
wLen = 32;
|
||||
for (int i = 0; i < wLen; ++i)
|
||||
awBuf[i] = (wSubAddr<<8) | i;
|
||||
qDebug() << "send4";
|
||||
|
||||
//Try to send data to RT until it answers with Clear Status
|
||||
bcputw(0, CW(RT_ADDR, RT_RECEIVE, wSubAddr, wLen));
|
||||
//bcputw(0, CW(RT_ADDR, RT_RECEIVE, wSubAddr, wLen));
|
||||
bcputw(0, CW(wAddr_RT, wRecTrans, wSubAddr, wLen));
|
||||
bcputblk(1, awBuf, wLen);
|
||||
do
|
||||
{
|
||||
//bcstartx(wBase, DATA_BC_RT | CX_STOP | CX_BUS_A | CX_NOSIG);
|
||||
bcstartx(wBase, DATA_BC_RT | CX_STOP | CX_BUS_B | CX_NOSIG);
|
||||
if (NewBC->WaitInt(DATA_BC_RT))
|
||||
NewBC->closeAll();
|
||||
bcstartx(wBase, DATA_BC_RT | CX_STOP | CX_BUS_A | CX_NOSIG);
|
||||
//bcstartx(wBase, DATA_BC_RT | CX_STOP | CX_BUS_B | CX_NOSIG);
|
||||
//if (NewBC->WaitInt(DATA_BC_RT)) //РАСКОММЕНТИРОВАТЬ, ЕСЛИ ЕСТЬ ОУ
|
||||
// NewBC->closeAll();
|
||||
} while ((tmkEvD.bcx.wResultX & (SX_ERR_MASK | SX_IB_MASK)) != 0);
|
||||
qDebug() << "send5";
|
||||
|
||||
for (int i = 0; i < wLen; ++i)
|
||||
set_item(DataTableDWord, 0, i, intToHexString(awBuf[i]), false);
|
||||
|
||||
NewBC->closeAll();
|
||||
}*/
|
||||
}
|
||||
|
||||
void MainWindow::rthandler()
|
||||
{
|
||||
qDebug() << "rt1";
|
||||
QScopedPointer<RT_MIL> NewRT(new RT_MIL(0, 10));
|
||||
qDebug() << "rt2";
|
||||
qDebug() << "Entered the button start status mode";
|
||||
bcrtFlag = 0;
|
||||
for (int i = 0; i < wLen; i++)
|
||||
set_item(DataTableDWord, 0, i, "%", false);
|
||||
|
||||
while (loopActive)
|
||||
QScopedPointer<RT_MIL> NewRT(new RT_MIL(0x0, RT_ADDR));
|
||||
|
||||
int i = 0;
|
||||
while (i != 100)
|
||||
{
|
||||
//Wait for an interrupt
|
||||
switch (WaitForSingleObject(hRtEvent, 1000))
|
||||
i++;
|
||||
|
||||
if(NewRT->GetEvent(1000))
|
||||
{
|
||||
case WAIT_OBJECT_0:
|
||||
/* New message has arrived */
|
||||
ResetEvent(hRtEvent);
|
||||
do
|
||||
{
|
||||
/* Get interrupt data */
|
||||
tmkgetevd(&tmkEvD);
|
||||
/* Check interrupt type */
|
||||
if (tmkEvD.nInt == 3)
|
||||
{
|
||||
wSubAddr = (tmkEvD.rt.wStatus >> 5) &0x1F;
|
||||
wLen = tmkEvD.rt.wStatus & 0x1F;
|
||||
if (wLen == 0)
|
||||
wLen = 32;
|
||||
if ((tmkEvD.rt.wStatus & RT_DIR_MASK) == RT_RECEIVE)
|
||||
{
|
||||
/* If we received some data then copy the data from Rx subaddres to */
|
||||
/* Tx subaddress and process flags */
|
||||
if ((rtgetflag(RT_RECEIVE, wSubAddr) & RT_FLAG_MASK) == 0)
|
||||
{
|
||||
qDebug() << "Flag read error";
|
||||
NewRT->closeAllrt();
|
||||
}
|
||||
rtdefsubaddr(RT_RECEIVE, wSubAddr);
|
||||
rtgetblk(0, awBuf, wLen);
|
||||
rtclrflag();
|
||||
rtdefsubaddr(RT_TRANSMIT, wSubAddr);
|
||||
rtputblk(0, awBuf, wLen);
|
||||
rtsetflag();
|
||||
}
|
||||
}
|
||||
} while (tmkEvD.nInt != 0); /* Loop while we have not processed all interrupts */
|
||||
|
||||
break;
|
||||
|
||||
case WAIT_TIMEOUT:
|
||||
/* No new messages */
|
||||
qDebug() << "No new messages";
|
||||
switch (tmkEvD.nInt)
|
||||
{
|
||||
case 1:
|
||||
qDebug() << "Cmd word arrived";
|
||||
filltablecmd("0", ( (RT_ADDR << 0xB) | tmkEvD.rt.wCmd ), false);
|
||||
filltablestat(rtgetanswbits() | (RT_ADDR << 0xB) );
|
||||
break;
|
||||
|
||||
default:
|
||||
qDebug() << "Interrupt wait error";
|
||||
NewRT->closeAllrt();
|
||||
case 2:
|
||||
qDebug() << "Case 2";
|
||||
break;
|
||||
|
||||
case 3:
|
||||
//wStatus = little 11 bits Command Word
|
||||
filltablecmd("0", ( (RT_ADDR << 0xB) | tmkEvD.rt.wStatus ), false);
|
||||
qDebug() << "Status word 2" << rtgetanswbits(); //SREQ, BUSY,SSFL, RTFL, DNBA
|
||||
filltablestat(rtgetanswbits() | (RT_ADDR << 0xB) );
|
||||
wSubAddr = (tmkEvD.rt.wStatus >> 5) & 0x1F;
|
||||
wLen = tmkEvD.rt.wStatus & 0x1F;
|
||||
if (wLen == 0)
|
||||
wLen = 32;
|
||||
|
||||
if (RT_RECEIVE == (tmkEvD.rt.wStatus & RT_DIR_MASK))
|
||||
{
|
||||
if (tmkselect(NewRT->m_TmkIndex))
|
||||
{
|
||||
qDebug() << "tmkselect() error";
|
||||
}
|
||||
|
||||
rtdefsubaddr(RT_RECEIVE, wSubAddr);
|
||||
rtgetblk(0, awBuf, wLen);
|
||||
rtclrflag();
|
||||
rtdefsubaddr(RT_TRANSMIT, wSubAddr);
|
||||
rtputblk(0, awBuf, wLen);
|
||||
rtsetflag();
|
||||
for (int i = 0; i < wLen; i++)
|
||||
set_item(DataTableDWord, 0, i, intToHexString(awBuf[i]), false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
NewRT->closeAll();
|
||||
}
|
||||
|
||||
void MainWindow::filltablestat(uint16_t statw)
|
||||
{
|
||||
QScopedPointer<StatusWord> NewStatWord(new StatusWord());
|
||||
|
||||
NewStatWord->description(statw);
|
||||
|
||||
set_item(DataTableStat, 0, 0, "Адрес устройства", false);
|
||||
set_item(DataTableStat, 0, 1, intToBinaryString(NewStatWord->addrRTf), false);
|
||||
set_item(DataTableStat, 0, 2, intToDecString(NewStatWord->addrRTf), false);
|
||||
|
||||
if(NewStatWord->messErrf)
|
||||
{
|
||||
set_item(DataTableStat, 1, 0, "Достоверная инф-я", false);
|
||||
set_item(DataTableStat, 1, 1, intToBinaryString(NewStatWord->messErrf), false);
|
||||
set_item(DataTableStat, 1, 2, intToDecString(NewStatWord->messErrf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableStat, 1, 0, "Недостоверная инф-я", false);
|
||||
set_item(DataTableStat, 1, 1, intToBinaryString(NewStatWord->messErrf), false);
|
||||
set_item(DataTableStat, 1, 2, intToDecString(NewStatWord->messErrf), false);
|
||||
}
|
||||
|
||||
set_item(DataTableStat, 2, 0, "Передача ОС (всегда 0)", false);
|
||||
set_item(DataTableStat, 2, 1, intToBinaryString(NewStatWord->instrf), false);
|
||||
set_item(DataTableStat, 2, 2, intToDecString(NewStatWord->instrf), false);
|
||||
|
||||
if(NewStatWord->serReqf)
|
||||
{
|
||||
set_item(DataTableStat, 3, 0, "Запрос на обслуживание", false);
|
||||
set_item(DataTableStat, 3, 1, intToBinaryString(NewStatWord->serReqf), false);
|
||||
set_item(DataTableStat, 3, 2, intToDecString(NewStatWord->serReqf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableStat, 3, 0, "Нет запроса на обсл-е", false);
|
||||
set_item(DataTableStat, 3, 1, intToBinaryString(NewStatWord->serReqf), false);
|
||||
set_item(DataTableStat, 3, 2, intToDecString(NewStatWord->serReqf), false);
|
||||
}
|
||||
|
||||
set_item(DataTableStat, 4, 0, "Резерв", false);
|
||||
set_item(DataTableStat, 4, 1, intToBinaryString(NewStatWord->reservf), false);
|
||||
set_item(DataTableStat, 4, 2, intToDecString(NewStatWord->reservf), false);
|
||||
|
||||
if(NewStatWord->broadCRf)
|
||||
{
|
||||
set_item(DataTableStat, 5, 0, "Достоверная гр. команда", false);
|
||||
set_item(DataTableStat, 5, 1, intToBinaryString(NewStatWord->broadCRf), false);
|
||||
set_item(DataTableStat, 5, 2, intToDecString(NewStatWord->broadCRf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableStat, 5, 0, "Недостоверная гр. команда", false);
|
||||
set_item(DataTableStat, 5, 1, intToBinaryString(NewStatWord->broadCRf), false);
|
||||
set_item(DataTableStat, 5, 2, intToDecString(NewStatWord->broadCRf), false);
|
||||
}
|
||||
|
||||
if(NewStatWord->busyf)
|
||||
{
|
||||
set_item(DataTableStat, 6, 0, "Абонент занят", false);
|
||||
set_item(DataTableStat, 6, 1, intToBinaryString(NewStatWord->busyf), false);
|
||||
set_item(DataTableStat, 6, 2, intToDecString(NewStatWord->busyf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableStat, 6, 0, "Абонент не занят", false);
|
||||
set_item(DataTableStat, 6, 1, intToBinaryString(NewStatWord->busyf), false);
|
||||
set_item(DataTableStat, 6, 2, intToDecString(NewStatWord->busyf), false);
|
||||
}
|
||||
|
||||
if(NewStatWord->subSysFf)
|
||||
{
|
||||
set_item(DataTableStat, 7, 0, "Неисправность абонента", false);
|
||||
set_item(DataTableStat, 7, 1, intToBinaryString(NewStatWord->subSysFf), false);
|
||||
set_item(DataTableStat, 7, 2, intToDecString(NewStatWord->subSysFf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableStat, 7, 0, "Абонент функционирует", false);
|
||||
set_item(DataTableStat, 7, 1, intToBinaryString(NewStatWord->subSysFf), false);
|
||||
set_item(DataTableStat, 7, 2, intToDecString(NewStatWord->subSysFf), false);
|
||||
}
|
||||
|
||||
if(NewStatWord->dynBCAf)
|
||||
{
|
||||
set_item(DataTableStat, 8, 0, "Принято упр-е интерфейсом", false);
|
||||
set_item(DataTableStat, 8, 1, intToBinaryString(NewStatWord->dynBCAf), false);
|
||||
set_item(DataTableStat, 8, 2, intToDecString(NewStatWord->dynBCAf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableStat, 8, 0, "Не принято упр-е интерфейсом", false);
|
||||
set_item(DataTableStat, 8, 1, intToBinaryString(NewStatWord->dynBCAf), false);
|
||||
set_item(DataTableStat, 8, 2, intToDecString(NewStatWord->dynBCAf), false);
|
||||
}
|
||||
|
||||
if(NewStatWord->termFlgf)
|
||||
{
|
||||
set_item(DataTableStat, 9, 0, "Неправильное функ-е ОУ", false);
|
||||
set_item(DataTableStat, 9, 1, intToBinaryString(NewStatWord->termFlgf), false);
|
||||
set_item(DataTableStat, 9, 2, intToDecString(NewStatWord->termFlgf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableStat, 9, 0, "Правильное функ-е ОУ", false);
|
||||
set_item(DataTableStat, 9, 1, intToBinaryString(NewStatWord->termFlgf), false);
|
||||
set_item(DataTableStat, 9, 2, intToDecString(NewStatWord->termFlgf), false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::filltablecmd(QString CmdW, uint16_t cmdw, bool mode)
|
||||
{
|
||||
QScopedPointer<CommandWord> NewCmdWord(new CommandWord());
|
||||
if(mode)
|
||||
NewCmdWord->description(CmdW);
|
||||
else
|
||||
NewCmdWord->description(cmdw);
|
||||
|
||||
wSubAddr = NewCmdWord->subAddrf;
|
||||
wLen = NewCmdWord->numDWf;
|
||||
wAddr_RT = NewCmdWord->addrRTf;
|
||||
wRecTrans = NewCmdWord->Kf;
|
||||
|
||||
set_item(DataTableCmd, 0, 0, "Адрес устройства", false);
|
||||
set_item(DataTableCmd, 0, 1, intToBinaryString(NewCmdWord->addrRTf), false);
|
||||
set_item(DataTableCmd, 0, 2, intToDecString(NewCmdWord->addrRTf), false);
|
||||
|
||||
if(NewCmdWord->Kf)
|
||||
{
|
||||
set_item(DataTableCmd, 1, 0, "Передача", false);
|
||||
set_item(DataTableCmd, 1, 1, intToBinaryString(NewCmdWord->Kf), false);
|
||||
set_item(DataTableCmd, 1, 2, intToDecString(NewCmdWord->Kf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableCmd, 1, 0, "Прием", false);
|
||||
set_item(DataTableCmd, 1, 1, intToBinaryString(NewCmdWord->Kf), false);
|
||||
set_item(DataTableCmd, 1, 2, intToDecString(NewCmdWord->Kf), false);
|
||||
}
|
||||
|
||||
if((NewCmdWord->subAddrf == 0) || (NewCmdWord->subAddrf == 31))
|
||||
{
|
||||
set_item(DataTableCmd, 2, 0, "Режим управления", false);
|
||||
set_item(DataTableCmd, 2, 1, intToBinaryString(NewCmdWord->subAddrf), false);
|
||||
set_item(DataTableCmd, 2, 2, intToDecString(NewCmdWord->subAddrf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableCmd, 2, 0, "Подадрес", false);
|
||||
set_item(DataTableCmd, 2, 1, intToBinaryString(NewCmdWord->subAddrf), false);
|
||||
set_item(DataTableCmd, 2, 2, intToDecString(NewCmdWord->subAddrf), false);
|
||||
}
|
||||
|
||||
if((NewCmdWord->subAddrf == 0) || (NewCmdWord->subAddrf == 31))
|
||||
{
|
||||
set_item(DataTableCmd, 3, 0, NewCmdWord->cmdCode.value(NewCmdWord->numDWf), false);
|
||||
set_item(DataTableCmd, 3, 1, intToBinaryString(NewCmdWord->numDWf), false);
|
||||
set_item(DataTableCmd, 3, 2, intToDecString(NewCmdWord->numDWf), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(NewCmdWord->numDWf == 0)
|
||||
{
|
||||
set_item(DataTableCmd, 3, 0, "Число СД", false);
|
||||
set_item(DataTableCmd, 3, 1, intToBinaryString(32), false);
|
||||
set_item(DataTableCmd, 3, 2, intToDecString(32), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableCmd, 3, 0, "Число СД", false);
|
||||
set_item(DataTableCmd, 3, 1, intToBinaryString(NewCmdWord->numDWf), false);
|
||||
set_item(DataTableCmd, 3, 2, intToDecString(NewCmdWord->numDWf), false);
|
||||
}
|
||||
}
|
||||
NewRT->closeAllrt();
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
qDebug() << "MainWindow destructor";
|
||||
}
|
||||
|
Reference in New Issue
Block a user