88 lines
2.6 KiB
C++
88 lines
2.6 KiB
C++
#include "mainwindow.h"
|
||
#include "cmdwrd.h"
|
||
|
||
extern unsigned char HexBinFlag;
|
||
|
||
CommandWord::CommandWord()
|
||
{
|
||
addrRTf = 0;
|
||
Kf = 0;
|
||
subAddrf = 0;
|
||
numDWf = 0;
|
||
|
||
cmdCode.insert(dynBC, "Принять упр-е интерфейсом");
|
||
cmdCode.insert(sync1, "Синхронизация");
|
||
cmdCode.insert(transSW, "Передать ОС");
|
||
cmdCode.insert(initST, "Начать самоконтроль ОУ");
|
||
cmdCode.insert(transS, "Блокировать передатчик");
|
||
cmdCode.insert(overrTS, "Разблокировать передатчик");
|
||
cmdCode.insert(inhTFB, "Блок-ть признак неиспр-ти ОУ");
|
||
cmdCode.insert(overrITF, "Разблок-ть признак неиспр-ти ОУ");
|
||
cmdCode.insert(resetRT, "Уст-ть ОУ в исх-е состояние");
|
||
cmdCode.insert(transVW, "Передать вект-ое слово");
|
||
cmdCode.insert(sync2, "Синхронизация (с СД)");
|
||
cmdCode.insert(transLC, "Передать послед-ю команду");
|
||
cmdCode.insert(transBW, "Передать слово ВСК ОУ");
|
||
cmdCode.insert(selectedSW, "Блок-ть i-й передатчик");
|
||
cmdCode.insert(overrSTS, "Разблок-ть i-й передатчик");
|
||
|
||
for(uint8_t i = 0b01001; i < 0b10000; i++)
|
||
cmdCode.insert(i, "Резерв");
|
||
|
||
for(uint8_t i = 0b10110; i < 0b11111; i++)
|
||
cmdCode.insert(i, "Резерв");
|
||
}
|
||
|
||
uint8_t CommandWord::addrRTFind(uint16_t cmdw)
|
||
{
|
||
CW.all = cmdw;
|
||
return CW.addrRT;
|
||
}
|
||
|
||
uint8_t CommandWord::KFind(uint16_t cmdw)
|
||
{
|
||
CW.all = cmdw;
|
||
return CW.K;
|
||
}
|
||
|
||
uint8_t CommandWord::subAddrFind(uint16_t cmdw)
|
||
{
|
||
CW.all = cmdw;
|
||
return CW.subAddr;
|
||
}
|
||
|
||
uint8_t CommandWord::numDWFind(uint16_t cmdw)
|
||
{
|
||
CW.all = cmdw;
|
||
return CW.numDW;
|
||
}
|
||
|
||
void CommandWord::description(QString CmdW)
|
||
{
|
||
uint16_t 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
|
||
{
|
||
addrRTf = addrRTFind(cmdw);
|
||
Kf = KFind(cmdw);
|
||
subAddrf = subAddrFind(cmdw);
|
||
numDWf = numDWFind(cmdw);
|
||
}
|
||
}
|
||
|
||
CommandWord::~CommandWord()
|
||
{
|
||
}
|