rt mode v1
This commit is contained in:
87
cmdwrd.cpp
Normal file
87
cmdwrd.cpp
Normal 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()
|
||||
{
|
||||
}
|
Reference in New Issue
Block a user