#include "mainwindow.h" #include "reswrd.h" extern unsigned char HexBinFlag; ResponseWord::ResponseWord() { DeviceAddressR = 0; ErrorInMsg = 0; TransResW = 0; SerReq = 0; Reserve = 0; GroupCmd = 0; SubBusy = 0; SubFailure = 0; IntCtrlAccepted = 0; DeviceFailure = 0; } unsigned char ResponseWord::DeviceAddressRFind(int resw) { return (resw & 0x0000F800) >> 11; } unsigned char ResponseWord::ErrorInMsgFind(int resw) { return (resw >> 10) & 1; } unsigned char ResponseWord::TransResWFind(int resw) { return (resw >> 9) & 1; } unsigned char ResponseWord::SerReqFind(int resw) { return (resw >> 8) & 1; } unsigned char ResponseWord::ReserveFind(int resw) { return (resw & 0x000000E0) >> 5; } unsigned char ResponseWord::GroupCmdFind(int resw) { return (resw >> 4) & 1; } unsigned char ResponseWord::SubBusyFind(int resw) { return (resw >> 3) & 1; } unsigned char ResponseWord::SubFailureFind(int resw) { return (resw >> 2) & 1; } unsigned char ResponseWord::IntCtrlAcceptedFind(int resw) { return (resw >> 1) & 1; } unsigned char ResponseWord::DeviceFailureFind(int resw) { return (resw >> 0) & 1; } void ResponseWord::description(QString ResW) { int resw; bool result; if(HexBinFlag) resw = ResW.toInt(&result, 16); else resw = ResW.toInt(&result, 2); if(result == false) QMessageBox::warning(0, "Ошибка", "Недопустимое значение ОС"); else if((HexBinFlag == 0) && (ResW.length() != 16)) QMessageBox::warning(0, "Ошибка", "Недопустимое значение ОС"); else if((HexBinFlag == 1) && (ResW.length() != 4)) QMessageBox::warning(0, "Ошибка", "Недопустимое значение ОС"); else { DeviceAddressR = DeviceAddressRFind(resw); ErrorInMsg = ErrorInMsgFind(resw); TransResW = TransResWFind(resw); SerReq = SerReqFind(resw); Reserve = ReserveFind(resw); GroupCmd = GroupCmdFind(resw); SubBusy = SubBusyFind(resw); SubFailure = SubFailureFind(resw); IntCtrlAccepted = IntCtrlAcceptedFind(resw); DeviceFailure = DeviceFailureFind(resw); } } ResponseWord::~ResponseWord() { }