This commit is contained in:
2025-08-11 19:25:43 +03:00
commit 648e754d32
16 changed files with 4307 additions and 0 deletions

87
cmdwrd.cpp Normal file
View File

@@ -0,0 +1,87 @@
#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()
{
}