first version.
This commit is contained in:
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()
|
||||
{
|
||||
}
|
Reference in New Issue
Block a user