#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() { }