first version.
This commit is contained in:
35
.gitignore
vendored
Normal file
35
.gitignore
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
*.a
|
||||
*.o
|
||||
*.md
|
||||
*.exe
|
||||
*.user
|
||||
*.Debug
|
||||
*.Release
|
||||
*.stash
|
||||
MakeFile
|
||||
*.bin
|
||||
*.m
|
||||
*.txt
|
||||
*.mpd
|
||||
*.sens
|
||||
*.kna
|
||||
*.djvu
|
||||
resource/
|
||||
*.qrc
|
||||
resource.h
|
||||
*.png
|
||||
*.jpeg
|
||||
*.mp3
|
||||
*.wav
|
||||
*.db
|
||||
*.dll
|
||||
data/
|
||||
debug/
|
||||
platforms/
|
||||
release/
|
||||
compiler/
|
||||
src_build/
|
||||
html/
|
||||
log/
|
||||
doc/
|
||||
QtXml/
|
61
cmdwrd.cpp
Normal file
61
cmdwrd.cpp
Normal file
@@ -0,0 +1,61 @@
|
||||
#include "mainwindow.h"
|
||||
#include "cmdwrd.h"
|
||||
|
||||
extern unsigned char HexBinFlag;
|
||||
|
||||
CommandWord::CommandWord()
|
||||
{
|
||||
DeviceAddress = 0;
|
||||
K = 0;
|
||||
SubAdd_CtrlMode = 0;
|
||||
NumData_CmdCode = 0;
|
||||
}
|
||||
|
||||
unsigned char CommandWord::AddressFind(int cmdw)
|
||||
{
|
||||
return (cmdw & 0x0000F800) >> 11;
|
||||
}
|
||||
|
||||
unsigned char CommandWord::ResTranFind(int cmdw)
|
||||
{
|
||||
return (cmdw >> 10) & 1;
|
||||
}
|
||||
|
||||
unsigned char CommandWord::SubadContrlModeFind(int cmdw)
|
||||
{
|
||||
return (cmdw & 0x000003E0) >> 5;
|
||||
}
|
||||
|
||||
unsigned char CommandWord::NumDataWCodeCCFind(int cmdw)
|
||||
{
|
||||
return (cmdw & 0x0000001F) >> 0;
|
||||
}
|
||||
|
||||
void CommandWord::description(QString CmdW)
|
||||
{
|
||||
int cmdw;
|
||||
bool result;
|
||||
|
||||
if(HexBinFlag)
|
||||
cmdw = CmdW.toInt(&result, 16);
|
||||
else
|
||||
cmdw = CmdW.toInt(&result, 2);
|
||||
|
||||
if(result == false)
|
||||
QMessageBox::warning(0, "Ошибка", "Недопустимое значение КС");
|
||||
else if((HexBinFlag == 0) && (CmdW.length() != 16))
|
||||
QMessageBox::warning(0, "Ошибка", "Недопустимое значение КС");
|
||||
else if((HexBinFlag == 1) && (CmdW.length() != 4))
|
||||
QMessageBox::warning(0, "Ошибка", "Недопустимое значение КС");
|
||||
else
|
||||
{
|
||||
DeviceAddress = AddressFind(cmdw);
|
||||
K = ResTranFind(cmdw);
|
||||
SubAdd_CtrlMode = SubadContrlModeFind(cmdw);
|
||||
NumData_CmdCode = NumDataWCodeCCFind(cmdw);
|
||||
}
|
||||
}
|
||||
|
||||
CommandWord::~CommandWord()
|
||||
{
|
||||
}
|
26
cmdwrd.h
Normal file
26
cmdwrd.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#ifndef CMDWRD_H
|
||||
#define CMDWRD_H
|
||||
|
||||
#include "declaration.h"
|
||||
|
||||
class CommandWord:public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
unsigned char DeviceAddress;
|
||||
unsigned char K;
|
||||
unsigned char SubAdd_CtrlMode;
|
||||
unsigned char NumData_CmdCode;
|
||||
|
||||
void description(QString CmdW);
|
||||
unsigned char AddressFind(int cmdw);
|
||||
unsigned char ResTranFind(int cmdw);
|
||||
unsigned char SubadContrlModeFind(int cmdw);
|
||||
unsigned char NumDataWCodeCCFind(int cmdw);
|
||||
|
||||
CommandWord();
|
||||
~CommandWord();
|
||||
};
|
||||
|
||||
#endif // CMDWRD_H
|
21
declaration.h
Normal file
21
declaration.h
Normal file
@@ -0,0 +1,21 @@
|
||||
#ifndef DECLARATION_H
|
||||
#define DECLARATION_H
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QTableWidget>
|
||||
#include <QTableWidgetItem>
|
||||
#include <QVBoxLayout>
|
||||
#include <QGridLayout>
|
||||
#include <QHeaderView>
|
||||
#include <QLabel>
|
||||
#include <QComboBox>
|
||||
#include <QPushButton>
|
||||
#include <QTextEdit>
|
||||
#include <QDebug>
|
||||
#include <QMessageBox>
|
||||
#include <QTextCodec>
|
||||
#include <QLineEdit>
|
||||
#include <QString>
|
||||
#include <QScopedPointer>
|
||||
|
||||
#endif // DECLARATION_H
|
16
descript.pro
Normal file
16
descript.pro
Normal file
@@ -0,0 +1,16 @@
|
||||
QT += core gui
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
SOURCES += \
|
||||
cmdwrd.cpp \
|
||||
main.cpp \
|
||||
mainwindow.cpp \
|
||||
reswrd.cpp
|
||||
|
||||
HEADERS += \
|
||||
cmdwrd.h \
|
||||
declaration.h \
|
||||
mainwindow.h \
|
||||
reswrd.h
|
||||
|
11
main.cpp
Normal file
11
main.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
MainWindow w;
|
||||
w.show();
|
||||
return a.exec();
|
||||
}
|
344
mainwindow.cpp
Normal file
344
mainwindow.cpp
Normal file
@@ -0,0 +1,344 @@
|
||||
#include "mainwindow.h"
|
||||
#include "cmdwrd.h"
|
||||
#include "reswrd.h"
|
||||
|
||||
unsigned char HexBinFlag = 1; //1 - hex, 0 - bin
|
||||
|
||||
MainWindow::MainWindow()
|
||||
{
|
||||
init_mainwindowobj();
|
||||
init_table();
|
||||
init_table_res();
|
||||
init_connections();
|
||||
}
|
||||
|
||||
void MainWindow::init_mainwindowobj()
|
||||
{
|
||||
qDebug() << "Startyem";
|
||||
|
||||
Window_1 = new QWidget;
|
||||
Window_2 = new QWidget;
|
||||
|
||||
HexBinButton = new QPushButton("Hex/Bin");
|
||||
HexBinLabel = new QLabel("Hex");
|
||||
|
||||
CmdWordLabel = new QLabel("Enter the command word:");
|
||||
CmdWordLineEdit = new QLineEdit;
|
||||
EnterCmdWordButton = new QPushButton("Enter the cmd word");
|
||||
|
||||
ResWordLabel = new QLabel("Enter the response word:");
|
||||
ResWordLineEdit = new QLineEdit;
|
||||
EnterResWordButton = new QPushButton("Enter the res word");
|
||||
|
||||
DataTable = new QTableWidget;
|
||||
DataTableRes = 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);
|
||||
layout_g->addWidget(ResWordLabel, 1, 1);
|
||||
layout_g->addWidget(ResWordLineEdit, 2, 1);
|
||||
layout_g->addWidget(EnterResWordButton, 3, 1);
|
||||
|
||||
Window_2->setLayout(layout_g);
|
||||
setCentralWidget(Window_2);
|
||||
|
||||
QVBoxLayout *layout = new QVBoxLayout(Window_1);
|
||||
layout->addWidget(Window_2);
|
||||
layout->addWidget(DataTable);
|
||||
layout->addWidget(DataTableRes);
|
||||
|
||||
Window_1->setLayout(layout);
|
||||
setCentralWidget(Window_1);
|
||||
}
|
||||
|
||||
void MainWindow::init_connections()
|
||||
{
|
||||
connect(EnterCmdWordButton,
|
||||
SIGNAL(clicked()),
|
||||
this,
|
||||
SLOT(getlineedit()));
|
||||
connect(EnterResWordButton,
|
||||
SIGNAL(clicked()),
|
||||
this,
|
||||
SLOT(getlineeditres()));
|
||||
connect(HexBinButton,
|
||||
SIGNAL(clicked()),
|
||||
this,
|
||||
SLOT(HexBinChange()));
|
||||
}
|
||||
|
||||
QString intToBinaryString(int number)
|
||||
{
|
||||
return QString::number(number,2);
|
||||
}
|
||||
|
||||
QString intToDecString(int number)
|
||||
{
|
||||
return QString::number(number,10);
|
||||
}
|
||||
|
||||
void MainWindow::getlineedit()
|
||||
{
|
||||
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->DeviceAddress), false);
|
||||
set_item(DataTable, 0, 2, intToDecString(NewCmdWord->DeviceAddress), false);
|
||||
|
||||
if(NewCmdWord->K)
|
||||
{
|
||||
set_item(DataTable, 1, 0, "Передача", false);
|
||||
set_item(DataTable, 1, 1, intToBinaryString(NewCmdWord->K), false);
|
||||
set_item(DataTable, 1, 2, intToDecString(NewCmdWord->K), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTable, 1, 0, "Прием", false);
|
||||
set_item(DataTable, 1, 1, intToBinaryString(NewCmdWord->K), false);
|
||||
set_item(DataTable, 1, 2, intToDecString(NewCmdWord->K), false);
|
||||
}
|
||||
|
||||
if((NewCmdWord->SubAdd_CtrlMode == 0) || (NewCmdWord->SubAdd_CtrlMode == 31))
|
||||
{
|
||||
set_item(DataTable, 2, 0, "Режим управления", false);
|
||||
set_item(DataTable, 2, 1, intToBinaryString(NewCmdWord->SubAdd_CtrlMode), false);
|
||||
set_item(DataTable, 2, 2, intToDecString(NewCmdWord->SubAdd_CtrlMode), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTable, 2, 0, "Подадрес", false);
|
||||
set_item(DataTable, 2, 1, intToBinaryString(NewCmdWord->SubAdd_CtrlMode), false);
|
||||
set_item(DataTable, 2, 2, intToDecString(NewCmdWord->SubAdd_CtrlMode), false);
|
||||
}
|
||||
|
||||
if((NewCmdWord->SubAdd_CtrlMode == 0) || (NewCmdWord->SubAdd_CtrlMode == 31))
|
||||
{
|
||||
set_item(DataTable, 3, 0, "Код КУ", false);
|
||||
set_item(DataTable, 3, 1, intToBinaryString(NewCmdWord->NumData_CmdCode), false);
|
||||
set_item(DataTable, 3, 2, intToDecString(NewCmdWord->NumData_CmdCode), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(NewCmdWord->NumData_CmdCode == 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->NumData_CmdCode), false);
|
||||
set_item(DataTable, 3, 2, intToDecString(NewCmdWord->NumData_CmdCode), false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::getlineeditres()
|
||||
{
|
||||
qDebug() << "Entered the button response word";
|
||||
QString ResW = ResWordLineEdit->text();
|
||||
qDebug() << ResW;
|
||||
|
||||
QScopedPointer<ResponseWord> NewResWord(new ResponseWord());
|
||||
NewResWord->description(ResW);
|
||||
|
||||
set_item(DataTableRes, 0, 0, "Адрес устройства", false);
|
||||
set_item(DataTableRes, 0, 1, intToBinaryString(NewResWord->DeviceAddressR), false);
|
||||
set_item(DataTableRes, 0, 2, intToDecString(NewResWord->DeviceAddressR), false);
|
||||
|
||||
if(NewResWord->ErrorInMsg)
|
||||
{
|
||||
set_item(DataTableRes, 1, 0, "Достоверная инф-я", false);
|
||||
set_item(DataTableRes, 1, 1, intToBinaryString(NewResWord->ErrorInMsg), false);
|
||||
set_item(DataTableRes, 1, 2, intToDecString(NewResWord->ErrorInMsg), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableRes, 1, 0, "Недостоверная инф-я", false);
|
||||
set_item(DataTableRes, 1, 1, intToBinaryString(NewResWord->ErrorInMsg), false);
|
||||
set_item(DataTableRes, 1, 2, intToDecString(NewResWord->ErrorInMsg), false);
|
||||
}
|
||||
|
||||
set_item(DataTableRes, 2, 0, "Передача ОС (всегда 0)", false);
|
||||
set_item(DataTableRes, 2, 1, intToBinaryString(NewResWord->TransResW), false);
|
||||
set_item(DataTableRes, 2, 2, intToDecString(NewResWord->TransResW), false);
|
||||
|
||||
if(NewResWord->SerReq)
|
||||
{
|
||||
set_item(DataTableRes, 3, 0, "Запрос на обслуживание", false);
|
||||
set_item(DataTableRes, 3, 1, intToBinaryString(NewResWord->SerReq), false);
|
||||
set_item(DataTableRes, 3, 2, intToDecString(NewResWord->SerReq), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableRes, 3, 0, "Нет запроса на обсл-е", false);
|
||||
set_item(DataTableRes, 3, 1, intToBinaryString(NewResWord->SerReq), false);
|
||||
set_item(DataTableRes, 3, 2, intToDecString(NewResWord->SerReq), false);
|
||||
}
|
||||
|
||||
set_item(DataTableRes, 4, 0, "Резерв", false);
|
||||
set_item(DataTableRes, 4, 1, intToBinaryString(NewResWord->Reserve), false);
|
||||
set_item(DataTableRes, 4, 2, intToDecString(NewResWord->Reserve), false);
|
||||
|
||||
if(NewResWord->GroupCmd)
|
||||
{
|
||||
set_item(DataTableRes, 5, 0, "Достоверная гр. команда", false);
|
||||
set_item(DataTableRes, 5, 1, intToBinaryString(NewResWord->GroupCmd), false);
|
||||
set_item(DataTableRes, 5, 2, intToDecString(NewResWord->GroupCmd), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableRes, 5, 0, "Недостоверная гр. команда", false);
|
||||
set_item(DataTableRes, 5, 1, intToBinaryString(NewResWord->GroupCmd), false);
|
||||
set_item(DataTableRes, 5, 2, intToDecString(NewResWord->GroupCmd), false);
|
||||
}
|
||||
|
||||
if(NewResWord->SubBusy)
|
||||
{
|
||||
set_item(DataTableRes, 6, 0, "Абонент занят", false);
|
||||
set_item(DataTableRes, 6, 1, intToBinaryString(NewResWord->SubBusy), false);
|
||||
set_item(DataTableRes, 6, 2, intToDecString(NewResWord->SubBusy), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableRes, 6, 0, "Абонент не занят", false);
|
||||
set_item(DataTableRes, 6, 1, intToBinaryString(NewResWord->SubBusy), false);
|
||||
set_item(DataTableRes, 6, 2, intToDecString(NewResWord->SubBusy), false);
|
||||
}
|
||||
|
||||
if(NewResWord->SubFailure)
|
||||
{
|
||||
set_item(DataTableRes, 7, 0, "Неисправность абонента", false);
|
||||
set_item(DataTableRes, 7, 1, intToBinaryString(NewResWord->SubFailure), false);
|
||||
set_item(DataTableRes, 7, 2, intToDecString(NewResWord->SubFailure), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableRes, 7, 0, "Абонент функционирует", false);
|
||||
set_item(DataTableRes, 7, 1, intToBinaryString(NewResWord->SubFailure), false);
|
||||
set_item(DataTableRes, 7, 2, intToDecString(NewResWord->SubFailure), false);
|
||||
}
|
||||
|
||||
if(NewResWord->IntCtrlAccepted)
|
||||
{
|
||||
set_item(DataTableRes, 8, 0, "Принято упр-е интерфейсом", false);
|
||||
set_item(DataTableRes, 8, 1, intToBinaryString(NewResWord->IntCtrlAccepted), false);
|
||||
set_item(DataTableRes, 8, 2, intToDecString(NewResWord->IntCtrlAccepted), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableRes, 8, 0, "Не принято упр-е интерфейсом", false);
|
||||
set_item(DataTableRes, 8, 1, intToBinaryString(NewResWord->IntCtrlAccepted), false);
|
||||
set_item(DataTableRes, 8, 2, intToDecString(NewResWord->IntCtrlAccepted), false);
|
||||
}
|
||||
|
||||
if(NewResWord->DeviceFailure)
|
||||
{
|
||||
set_item(DataTableRes, 9, 0, "Неправильное функ-е ОУ", false);
|
||||
set_item(DataTableRes, 9, 1, intToBinaryString(NewResWord->DeviceFailure), false);
|
||||
set_item(DataTableRes, 9, 2, intToDecString(NewResWord->DeviceFailure), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_item(DataTableRes, 9, 0, "Правильное функ-е ОУ", false);
|
||||
set_item(DataTableRes, 9, 1, intToBinaryString(NewResWord->DeviceFailure), false);
|
||||
set_item(DataTableRes, 9, 2, intToDecString(NewResWord->DeviceFailure), false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::HexBinChange()
|
||||
{
|
||||
switch(HexBinFlag)
|
||||
{
|
||||
case 0: //было bin
|
||||
HexBinLabel->setText("Hex");
|
||||
HexBinFlag = 1;
|
||||
break;
|
||||
|
||||
case 1: //было hex
|
||||
HexBinLabel->setText("Bin");
|
||||
HexBinFlag = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::init_table()
|
||||
{
|
||||
int ColCount = 3;
|
||||
int RowCount = 4;
|
||||
QStringList header;
|
||||
header << "Биты КС" << "Бинарное представление" << "Десятичное представление";
|
||||
|
||||
DataTable->setColumnCount(ColCount);
|
||||
DataTable->setRowCount(RowCount);
|
||||
DataTable->setHorizontalHeaderLabels(header);
|
||||
DataTable->verticalHeader()->setVisible(true);
|
||||
|
||||
DataTable->setColumnWidth(0,160);
|
||||
DataTable->setColumnWidth(1,160);
|
||||
DataTable->setColumnWidth(2,160);
|
||||
|
||||
for(int i = 0; i < RowCount; i++)
|
||||
{
|
||||
DataTable->setRowHeight(i,20);
|
||||
for(int j = 0; j < ColCount; j++)
|
||||
set_item(DataTable, i, j, "%", false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::init_table_res()
|
||||
{
|
||||
int ColCount = 3;
|
||||
int RowCount = 10;
|
||||
QStringList header;
|
||||
header << "Биты ОС" << "Бинарное представление" << "Десятичное представление";
|
||||
|
||||
DataTableRes->setColumnCount(ColCount);
|
||||
DataTableRes->setRowCount(RowCount);
|
||||
DataTableRes->setHorizontalHeaderLabels(header);
|
||||
DataTableRes->verticalHeader()->setVisible(true);
|
||||
|
||||
DataTableRes->setColumnWidth(0,180);
|
||||
DataTableRes->setColumnWidth(1,160);
|
||||
DataTableRes->setColumnWidth(2,160);
|
||||
|
||||
for(int i = 0; i < RowCount; i++)
|
||||
{
|
||||
DataTableRes->setRowHeight(i,20);
|
||||
for(int j = 0; j < ColCount; j++)
|
||||
set_item(DataTableRes, i, j, "%", false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::set_item(QTableWidget *pTable, int indRow,
|
||||
int indCol, QString data, bool editFlag)
|
||||
{
|
||||
QColor color;
|
||||
color.black();
|
||||
QTableWidgetItem *itm =
|
||||
new QTableWidgetItem(data);
|
||||
pTable->setItem(indRow,indCol,itm);
|
||||
|
||||
if (editFlag) {}
|
||||
else
|
||||
{
|
||||
pTable->item(indRow, indCol)->setFlags(Qt::ItemIsSelectable|
|
||||
Qt::ItemIsDragEnabled|
|
||||
Qt::ItemIsUserCheckable);
|
||||
}
|
||||
pTable->item(indRow, indCol)->setTextColor(color);
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
}
|
41
mainwindow.h
Normal file
41
mainwindow.h
Normal file
@@ -0,0 +1,41 @@
|
||||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include "declaration.h"
|
||||
|
||||
class MainWindow:public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
void init_mainwindowobj(); //the function of this class
|
||||
void init_connections();
|
||||
explicit MainWindow(); //constructor
|
||||
~MainWindow(); //destructor
|
||||
|
||||
private:
|
||||
void init_table();
|
||||
void init_table_res();
|
||||
void set_item(QTableWidget *pTable, int indRow,
|
||||
int indCol, QString data, bool editFlag);
|
||||
|
||||
public slots:
|
||||
void getlineedit();
|
||||
void getlineeditres();
|
||||
void HexBinChange();
|
||||
|
||||
private:
|
||||
QWidget *Window_1 = new QWidget;
|
||||
QWidget *Window_2 = new QWidget;
|
||||
QLabel *HexBinLabel;
|
||||
QPushButton *HexBinButton;
|
||||
QLabel *CmdWordLabel;
|
||||
QLineEdit *CmdWordLineEdit;
|
||||
QPushButton *EnterCmdWordButton;
|
||||
QLabel *ResWordLabel;
|
||||
QLineEdit *ResWordLineEdit;
|
||||
QPushButton *EnterResWordButton;
|
||||
QTableWidget *DataTable;
|
||||
QTableWidget *DataTableRes;
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
104
reswrd.cpp
Normal file
104
reswrd.cpp
Normal file
@@ -0,0 +1,104 @@
|
||||
#include "mainwindow.h"
|
||||
#include "reswrd.h"
|
||||
|
||||
extern unsigned char HexBinFlag;
|
||||
|
||||
ResponseWord::ResponseWord()
|
||||
{
|
||||
DeviceAddressR = 0;
|
||||
ErrorInMsg = 0;
|
||||
TransResW = 0;
|
||||
SerReq = 0;
|
||||
Reserve = 0;
|
||||
GroupCmd = 0;
|
||||
SubBusy = 0;
|
||||
SubFailure = 0;
|
||||
IntCtrlAccepted = 0;
|
||||
DeviceFailure = 0;
|
||||
}
|
||||
|
||||
unsigned char ResponseWord::DeviceAddressRFind(int resw)
|
||||
{
|
||||
return (resw & 0x0000F800) >> 11;
|
||||
}
|
||||
|
||||
unsigned char ResponseWord::ErrorInMsgFind(int resw)
|
||||
{
|
||||
return (resw >> 10) & 1;
|
||||
}
|
||||
|
||||
unsigned char ResponseWord::TransResWFind(int resw)
|
||||
{
|
||||
return (resw >> 9) & 1;
|
||||
}
|
||||
|
||||
unsigned char ResponseWord::SerReqFind(int resw)
|
||||
{
|
||||
return (resw >> 8) & 1;
|
||||
}
|
||||
|
||||
unsigned char ResponseWord::ReserveFind(int resw)
|
||||
{
|
||||
return (resw & 0x000000E0) >> 5;
|
||||
}
|
||||
|
||||
unsigned char ResponseWord::GroupCmdFind(int resw)
|
||||
{
|
||||
return (resw >> 4) & 1;
|
||||
}
|
||||
|
||||
unsigned char ResponseWord::SubBusyFind(int resw)
|
||||
{
|
||||
return (resw >> 3) & 1;
|
||||
}
|
||||
|
||||
unsigned char ResponseWord::SubFailureFind(int resw)
|
||||
{
|
||||
return (resw >> 2) & 1;
|
||||
}
|
||||
|
||||
unsigned char ResponseWord::IntCtrlAcceptedFind(int resw)
|
||||
{
|
||||
return (resw >> 1) & 1;
|
||||
}
|
||||
|
||||
unsigned char ResponseWord::DeviceFailureFind(int resw)
|
||||
{
|
||||
return (resw >> 0) & 1;
|
||||
}
|
||||
|
||||
void ResponseWord::description(QString ResW)
|
||||
{
|
||||
int resw;
|
||||
bool result;
|
||||
|
||||
if(HexBinFlag)
|
||||
resw = ResW.toInt(&result, 16);
|
||||
else
|
||||
resw = ResW.toInt(&result, 2);
|
||||
|
||||
if(result == false)
|
||||
QMessageBox::warning(0, "Ошибка", "Недопустимое значение ОС");
|
||||
else if((HexBinFlag == 0) && (ResW.length() != 16))
|
||||
QMessageBox::warning(0, "Ошибка", "Недопустимое значение ОС");
|
||||
else if((HexBinFlag == 1) && (ResW.length() != 4))
|
||||
QMessageBox::warning(0, "Ошибка", "Недопустимое значение ОС");
|
||||
else
|
||||
{
|
||||
DeviceAddressR = DeviceAddressRFind(resw);
|
||||
ErrorInMsg = ErrorInMsgFind(resw);
|
||||
TransResW = TransResWFind(resw);
|
||||
SerReq = SerReqFind(resw);
|
||||
Reserve = ReserveFind(resw);
|
||||
GroupCmd = GroupCmdFind(resw);
|
||||
SubBusy = SubBusyFind(resw);
|
||||
SubFailure = SubFailureFind(resw);
|
||||
IntCtrlAccepted = IntCtrlAcceptedFind(resw);
|
||||
DeviceFailure = DeviceFailureFind(resw);
|
||||
}
|
||||
}
|
||||
|
||||
ResponseWord::~ResponseWord()
|
||||
{
|
||||
|
||||
}
|
38
reswrd.h
Normal file
38
reswrd.h
Normal file
@@ -0,0 +1,38 @@
|
||||
#ifndef RESWRD_H
|
||||
#define RESWRD_H
|
||||
|
||||
#include "declaration.h"
|
||||
|
||||
class ResponseWord:public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
unsigned char DeviceAddressR;
|
||||
unsigned char ErrorInMsg;
|
||||
unsigned char TransResW;
|
||||
unsigned char SerReq;
|
||||
unsigned char Reserve;
|
||||
unsigned char GroupCmd;
|
||||
unsigned char SubBusy;
|
||||
unsigned char SubFailure;
|
||||
unsigned char IntCtrlAccepted;
|
||||
unsigned char DeviceFailure;
|
||||
|
||||
void description(QString ResW);
|
||||
unsigned char DeviceAddressRFind(int resw);
|
||||
unsigned char ErrorInMsgFind(int resw);
|
||||
unsigned char TransResWFind(int resw);
|
||||
unsigned char SerReqFind(int resw);
|
||||
unsigned char ReserveFind(int resw);
|
||||
unsigned char GroupCmdFind(int resw);
|
||||
unsigned char SubBusyFind(int resw);
|
||||
unsigned char SubFailureFind(int resw);
|
||||
unsigned char IntCtrlAcceptedFind(int resw);
|
||||
unsigned char DeviceFailureFind(int resw);
|
||||
|
||||
ResponseWord();
|
||||
~ResponseWord();
|
||||
};
|
||||
|
||||
#endif // RESWRD_H
|
Reference in New Issue
Block a user