diff --git a/M3KTE_TERM/M3KTE_TERM.pro b/M3KTE_TERM/M3KTE_TERM.pro index a51ffc2..7d5aad9 100644 --- a/M3KTE_TERM/M3KTE_TERM.pro +++ b/M3KTE_TERM/M3KTE_TERM.pro @@ -25,18 +25,21 @@ SOURCES += \ devicesettingsdialog.cpp \ main.cpp \ m3kte.cpp \ + multiplesettings.cpp \ settingsdialog.cpp \ writeregistermodel.cpp HEADERS += \ devicesettingsdialog.h \ m3kte.h \ + multiplesettings.h \ settingsdialog.h \ writeregistermodel.h FORMS += \ devicesettingsdialog.ui \ m3kte.ui \ + multiplesettings.ui \ settingsdialog.ui # Default rules for deployment. diff --git a/M3KTE_TERM/devicesettingsdialog.cpp b/M3KTE_TERM/devicesettingsdialog.cpp index 0fc84a2..7ed7d46 100644 --- a/M3KTE_TERM/devicesettingsdialog.cpp +++ b/M3KTE_TERM/devicesettingsdialog.cpp @@ -12,6 +12,11 @@ DeviceSettingsDialog::DeviceSettingsDialog(QWidget *parent) : _currentBoardTimers[2] = ui->spinTimerBoard_3->value(); _currentBoardTimers[3] = ui->spinTimerBoard_4->value(); + _m_timer[0] = ui->spinTimerBoard_1; + _m_timer[1] = ui->spinTimerBoard_2; + _m_timer[2] = ui->spinTimerBoard_3; + _m_timer[3] = ui->spinTimerBoard_4; + _currentSpeed = ui->speedBox->currentText().toUInt(); _currentParity = ui->parityBox->currentIndex(); @@ -38,13 +43,13 @@ void DeviceSettingsDialog::on_buttonApplyChangeTimer_clicked() void DeviceSettingsDialog::on_buttonApplyChangeSpeed_clicked() { - _currentSpeed = ui->speedBox->currentText().toUInt(); + _currentSpeed = ui->speedBox->currentIndex(); emit speedChanged(); } void DeviceSettingsDialog::on_buttonApplyChangeParity_clicked() { - _currentParity = ui->parityBox->currentData().toUInt(); + _currentParity = ui->parityBox->currentIndex(); emit parityChanged(); } @@ -52,6 +57,7 @@ void DeviceSettingsDialog::on_buttonApplyChangeAdr_clicked() { BoardIdHasBeenChanged* _boardIdHasBeenChanged = new BoardIdHasBeenChanged(ui->idComboBox->currentIndex(), ui->adrSpinBox->value()); QCoreApplication::postEvent(parent(), _boardIdHasBeenChanged); + close(); } unsigned DeviceSettingsDialog::currentBoardTimer(unsigned short _ID) @@ -69,16 +75,22 @@ unsigned short DeviceSettingsDialog::currentParity() return _currentParity; } -void DeviceSettingsDialog::updateSettingsAfterConnection(unsigned tmp_speed, unsigned tmp_parity, unsigned *tmp_adr) +void DeviceSettingsDialog::updateSettingsAfterConnection(unsigned tmp_speed, unsigned tmp_parity, unsigned *tmp_adr, int CurrentConnectedDevice) { ui->speedBox->setCurrentText(QString::number(_currentSpeed=tmp_speed, 10)); if(tmp_parity>0) tmp_parity--; ui->parityBox->setCurrentIndex(_currentParity = tmp_parity); - for(int i = 0; i < 4; i++) + for(int i = 0; i < CurrentConnectedDevice; i++) { + _m_timer[i]->setEnabled(true); + ui->idComboBox->addItem(QString::number(i)); _currentAdrs[i] = tmp_adr[i]; } + for(int i = CurrentConnectedDevice; i < 4; i++) + { + _m_timer[i]->setEnabled(false); + } on_idComboBox_currentIndexChanged(ui->idComboBox->currentIndex()); } @@ -86,3 +98,34 @@ void DeviceSettingsDialog::on_idComboBox_currentIndexChanged(int index) { ui->adrSpinBox->setValue(_currentAdrs[index]); } + +void DeviceSettingsDialog::on_buttonBox_clicked(QAbstractButton *button) +{ + switch (ui->buttonBox->buttonRole(button)) { + case QDialogButtonBox::ResetRole: + ui->spinTimerBoard_1->setValue(1000); + ui->spinTimerBoard_2->setValue(1000); + ui->spinTimerBoard_3->setValue(1000); + ui->spinTimerBoard_4->setValue(1000); + _currentBoardTimers[0] = ui->spinTimerBoard_1->value(); + _currentBoardTimers[1] = ui->spinTimerBoard_2->value(); + _currentBoardTimers[2] = ui->spinTimerBoard_3->value(); + _currentBoardTimers[3] = ui->spinTimerBoard_4->value(); + + ui->speedBox->setCurrentText("31250"); + _currentSpeed = ui->speedBox->currentText().toUInt(); + + ui->parityBox->setCurrentIndex(0); + _currentParity = ui->parityBox->currentIndex(); + + for(int i = 0; i < 4; i++) + { + _currentAdrs[i] = i+1; + } + ui->adrSpinBox->setValue(_currentAdrs[ui->idComboBox->currentIndex()]); + break; + case QDialogButtonBox::AcceptRole: + close(); + break; + } +} diff --git a/M3KTE_TERM/devicesettingsdialog.h b/M3KTE_TERM/devicesettingsdialog.h index 78e85f1..d11127e 100644 --- a/M3KTE_TERM/devicesettingsdialog.h +++ b/M3KTE_TERM/devicesettingsdialog.h @@ -3,6 +3,9 @@ #include #include +#include +#include +#include class BoardIdHasBeenChanged : public QEvent { @@ -33,7 +36,7 @@ public: unsigned currentBoardTimer(unsigned short _ID); unsigned currentSpeed(); unsigned short currentParity(); - void updateSettingsAfterConnection(unsigned tmp_speed, unsigned tmp_parity, unsigned *tmp_adr); + void updateSettingsAfterConnection(unsigned tmp_speed, unsigned tmp_parity, unsigned *tmp_adr, int CurrentConnectedDevice); signals: void parityChanged(); void speedChanged(); @@ -54,7 +57,10 @@ private slots: void on_idComboBox_currentIndexChanged(int index); + void on_buttonBox_clicked(QAbstractButton *button); + private: + QSpinBox *_m_timer[4]; unsigned _currentBoardTimers[4]; unsigned _currentSpeed; unsigned short _currentParity; diff --git a/M3KTE_TERM/devicesettingsdialog.ui b/M3KTE_TERM/devicesettingsdialog.ui index 8b37b7f..5e6a3ce 100644 --- a/M3KTE_TERM/devicesettingsdialog.ui +++ b/M3KTE_TERM/devicesettingsdialog.ui @@ -30,28 +30,18 @@ - 5 + 3 - - - 1200 - - - - - 2400 - - - - - 4800 - - 9600 + + + 14400 + + 19200 @@ -67,6 +57,11 @@ 38400 + + + 56000 + + 57600 @@ -204,30 +199,17 @@ Номер платы - - - 1 - - - - - 2 - - - - - 3 - - - - - 4 - - - + + + 1 + + + 247 + + diff --git a/M3KTE_TERM/m3kte.cpp b/M3KTE_TERM/m3kte.cpp index bd49339..8feec46 100644 --- a/M3KTE_TERM/m3kte.cpp +++ b/M3KTE_TERM/m3kte.cpp @@ -21,416 +21,328 @@ M3KTE::M3KTE(QWidget *parent) //Массив указателей на индикаторы напряжения топливных элементов { int i = 0; - m[i++] = ui->FuelCellVoltageBar_1; - m[i++] = ui->FuelCellVoltageBar_2; - m[i++] = ui->FuelCellVoltageBar_3; - m[i++] = ui->FuelCellVoltageBar_4; - m[i++] = ui->FuelCellVoltageBar_5; - m[i++] = ui->FuelCellVoltageBar_6; - m[i++] = ui->FuelCellVoltageBar_7; - m[i++] = ui->FuelCellVoltageBar_8; - m[i++] = ui->FuelCellVoltageBar_9; - m[i++] = ui->FuelCellVoltageBar_10; - m[i++] = ui->FuelCellVoltageBar_11; - m[i++] = ui->FuelCellVoltageBar_12; - m[i++] = ui->FuelCellVoltageBar_13; - m[i++] = ui->FuelCellVoltageBar_14; - m[i++] = ui->FuelCellVoltageBar_15; - m[i++] = ui->FuelCellVoltageBar_16; - m[i++] = ui->FuelCellVoltageBar_17; - m[i++] = ui->FuelCellVoltageBar_18; - m[i++] = ui->FuelCellVoltageBar_19; - m[i++] = ui->FuelCellVoltageBar_20; - m[i++] = ui->FuelCellVoltageBar_21; - m[i++] = ui->FuelCellVoltageBar_22; - m[i++] = ui->FuelCellVoltageBar_23; - m[i++] = ui->FuelCellVoltageBar_24; - m[i++] = ui->FuelCellVoltageBar_25; - m[i++] = ui->FuelCellVoltageBar_26; - m[i++] = ui->FuelCellVoltageBar_27; - m[i++] = ui->FuelCellVoltageBar_28; - m[i++] = ui->FuelCellVoltageBar_29; - m[i++] = ui->FuelCellVoltageBar_30; - m[i++] = ui->FuelCellVoltageBar_31; - m[i++] = ui->FuelCellVoltageBar_32; - m[i++] = ui->FuelCellVoltageBar_33; - m[i++] = ui->FuelCellVoltageBar_34; - m[i++] = ui->FuelCellVoltageBar_35; - m[i++] = ui->FuelCellVoltageBar_36; - m[i++] = ui->FuelCellVoltageBar_37; - m[i++] = ui->FuelCellVoltageBar_38; - m[i++] = ui->FuelCellVoltageBar_39; - m[i++] = ui->FuelCellVoltageBar_40; - m[i++] = ui->FuelCellVoltageBar_41; - m[i++] = ui->FuelCellVoltageBar_42; - m[i++] = ui->FuelCellVoltageBar_43; - m[i++] = ui->FuelCellVoltageBar_44; - m[i++] = ui->FuelCellVoltageBar_45; - m[i++] = ui->FuelCellVoltageBar_46; - m[i++] = ui->FuelCellVoltageBar_47; - m[i++] = ui->FuelCellVoltageBar_48; - m[i++] = ui->FuelCellVoltageBar_49; - m[i++] = ui->FuelCellVoltageBar_50; - m[i++] = ui->FuelCellVoltageBar_51; - m[i++] = ui->FuelCellVoltageBar_52; - m[i++] = ui->FuelCellVoltageBar_53; - m[i++] = ui->FuelCellVoltageBar_54; - m[i++] = ui->FuelCellVoltageBar_55; - m[i++] = ui->FuelCellVoltageBar_56; - m[i++] = ui->FuelCellVoltageBar_57; - m[i++] = ui->FuelCellVoltageBar_58; - m[i++] = ui->FuelCellVoltageBar_59; - m[i++] = ui->FuelCellVoltageBar_60; - m[i++] = ui->FuelCellVoltageBar_61; - m[i++] = ui->FuelCellVoltageBar_62; - m[i++] = ui->FuelCellVoltageBar_63; - m[i++] = ui->FuelCellVoltageBar_64; - m[i++] = ui->FuelCellVoltageBar_65; - m[i++] = ui->FuelCellVoltageBar_66; - m[i++] = ui->FuelCellVoltageBar_67; - m[i++] = ui->FuelCellVoltageBar_68; - m[i++] = ui->FuelCellVoltageBar_69; - m[i++] = ui->FuelCellVoltageBar_70; - m[i++] = ui->FuelCellVoltageBar_71; - m[i++] = ui->FuelCellVoltageBar_72; - m[i++] = ui->FuelCellVoltageBar_73; - m[i++] = ui->FuelCellVoltageBar_74; - m[i++] = ui->FuelCellVoltageBar_75; - m[i++] = ui->FuelCellVoltageBar_76; - m[i++] = ui->FuelCellVoltageBar_77; - m[i++] = ui->FuelCellVoltageBar_78; - m[i++] = ui->FuelCellVoltageBar_79; - m[i++] = ui->FuelCellVoltageBar_80; - m[i++] = ui->FuelCellVoltageBar_81; - m[i++] = ui->FuelCellVoltageBar_82; - m[i++] = ui->FuelCellVoltageBar_83; - m[i++] = ui->FuelCellVoltageBar_84; - m[i++] = ui->FuelCellVoltageBar_85; - m[i++] = ui->FuelCellVoltageBar_86; - m[i++] = ui->FuelCellVoltageBar_87; - m[i++] = ui->FuelCellVoltageBar_88; - m[i++] = ui->FuelCellVoltageBar_89; - m[i++] = ui->FuelCellVoltageBar_90; - m[i++] = ui->FuelCellVoltageBar_91; - m[i++] = ui->FuelCellVoltageBar_92; - m[i++] = ui->FuelCellVoltageBar_93; - m[i++] = ui->FuelCellVoltageBar_94; - m[i++] = ui->FuelCellVoltageBar_95; - m[i++] = ui->FuelCellVoltageBar_96; - m[i++] = ui->FuelCellVoltageBar_97; - m[i++] = ui->FuelCellVoltageBar_98; - m[i++] = ui->FuelCellVoltageBar_99; - m[i++] = ui->FuelCellVoltageBar_100; - m[i++] = ui->FuelCellVoltageBar_101; - m[i++] = ui->FuelCellVoltageBar_102; - m[i++] = ui->FuelCellVoltageBar_103; - m[i++] = ui->FuelCellVoltageBar_104; - m[i++] = ui->FuelCellVoltageBar_105; - m[i++] = ui->FuelCellVoltageBar_106; - m[i++] = ui->FuelCellVoltageBar_107; - m[i++] = ui->FuelCellVoltageBar_108; - m[i++] = ui->FuelCellVoltageBar_109; - m[i++] = ui->FuelCellVoltageBar_110; - m[i++] = ui->FuelCellVoltageBar_111; - m[i++] = ui->FuelCellVoltageBar_112; - m[i++] = ui->FuelCellVoltageBar_113; - m[i++] = ui->FuelCellVoltageBar_114; - m[i++] = ui->FuelCellVoltageBar_115; - m[i++] = ui->FuelCellVoltageBar_116; - m[i++] = ui->FuelCellVoltageBar_117; - m[i++] = ui->FuelCellVoltageBar_118; - m[i++] = ui->FuelCellVoltageBar_119; - m[i++] = ui->FuelCellVoltageBar_120; - m[i++] = ui->FuelCellVoltageBar_121; - m[i++] = ui->FuelCellVoltageBar_122; - m[i++] = ui->FuelCellVoltageBar_123; - m[i++] = ui->FuelCellVoltageBar_124; - m[i++] = ui->FuelCellVoltageBar_125; - m[i++] = ui->FuelCellVoltageBar_126; - m[i++] = ui->FuelCellVoltageBar_127; - m[i++] = ui->FuelCellVoltageBar_128; - m[i++] = ui->FuelCellVoltageBar_129; - m[i++] = ui->FuelCellVoltageBar_130; - m[i++] = ui->FuelCellVoltageBar_131; - m[i++] = ui->FuelCellVoltageBar_132; - m[i++] = ui->FuelCellVoltageBar_133; - m[i++] = ui->FuelCellVoltageBar_134; - m[i++] = ui->FuelCellVoltageBar_135; - m[i++] = ui->FuelCellVoltageBar_136; - m[i++] = ui->FuelCellVoltageBar_137; - m[i++] = ui->FuelCellVoltageBar_138; - m[i++] = ui->FuelCellVoltageBar_139; - m[i++] = ui->FuelCellVoltageBar_140; - m[i++] = ui->FuelCellVoltageBar_141; - m[i++] = ui->FuelCellVoltageBar_142; - m[i++] = ui->FuelCellVoltageBar_143; - m[i++] = ui->FuelCellVoltageBar_144; - m[i++] = ui->FuelCellVoltageBar_145; - m[i++] = ui->FuelCellVoltageBar_146; - m[i++] = ui->FuelCellVoltageBar_147; - m[i++] = ui->FuelCellVoltageBar_148; - m[i++] = ui->FuelCellVoltageBar_149; - m[i++] = ui->FuelCellVoltageBar_150; - m[i++] = ui->FuelCellVoltageBar_151; - m[i++] = ui->FuelCellVoltageBar_152; - m[i++] = ui->FuelCellVoltageBar_153; - m[i++] = ui->FuelCellVoltageBar_154; - m[i++] = ui->FuelCellVoltageBar_155; - m[i++] = ui->FuelCellVoltageBar_156; - m[i++] = ui->FuelCellVoltageBar_157; - m[i++] = ui->FuelCellVoltageBar_158; - m[i++] = ui->FuelCellVoltageBar_159; - m[i++] = ui->FuelCellVoltageBar_160; - m[i++] = ui->FuelCellVoltageBar_161; - m[i++] = ui->FuelCellVoltageBar_162; - m[i++] = ui->FuelCellVoltageBar_163; - m[i++] = ui->FuelCellVoltageBar_164; - m[i++] = ui->FuelCellVoltageBar_165; - m[i++] = ui->FuelCellVoltageBar_166; - m[i++] = ui->FuelCellVoltageBar_167; - m[i++] = ui->FuelCellVoltageBar_168; - m[i++] = ui->FuelCellVoltageBar_169; - m[i++] = ui->FuelCellVoltageBar_170; - m[i++] = ui->FuelCellVoltageBar_171; - m[i++] = ui->FuelCellVoltageBar_172; - m[i++] = ui->FuelCellVoltageBar_173; - m[i++] = ui->FuelCellVoltageBar_174; - m[i++] = ui->FuelCellVoltageBar_175; - m[i++] = ui->FuelCellVoltageBar_176; - m[i++] = ui->FuelCellVoltageBar_177; - m[i++] = ui->FuelCellVoltageBar_178; - m[i++] = ui->FuelCellVoltageBar_179; - m[i++] = ui->FuelCellVoltageBar_180; - m[i++] = ui->FuelCellVoltageBar_181; - m[i++] = ui->FuelCellVoltageBar_182; - m[i++] = ui->FuelCellVoltageBar_183; - m[i++] = ui->FuelCellVoltageBar_184; - m[i++] = ui->FuelCellVoltageBar_185; - m[i++] = ui->FuelCellVoltageBar_186; - m[i++] = ui->FuelCellVoltageBar_187; - m[i++] = ui->FuelCellVoltageBar_188; - m[i++] = ui->FuelCellVoltageBar_189; - m[i++] = ui->FuelCellVoltageBar_190; - m[i++] = ui->FuelCellVoltageBar_191; - m[i++] = ui->FuelCellVoltageBar_192; - m[i++] = ui->FuelCellVoltageBar_193; - m[i++] = ui->FuelCellVoltageBar_194; - m[i++] = ui->FuelCellVoltageBar_195; - m[i++] = ui->FuelCellVoltageBar_196; - m[i++] = ui->FuelCellVoltageBar_197; - m[i++] = ui->FuelCellVoltageBar_198; - m[i++] = ui->FuelCellVoltageBar_199; - m[i++] = ui->FuelCellVoltageBar_200; - m[i++] = ui->FuelCellVoltageBar_201; - m[i++] = ui->FuelCellVoltageBar_202; - m[i++] = ui->FuelCellVoltageBar_203; - m[i++] = ui->FuelCellVoltageBar_204; - m[i++] = ui->FuelCellVoltageBar_205; - m[i++] = ui->FuelCellVoltageBar_206; - m[i++] = ui->FuelCellVoltageBar_207; - m[i++] = ui->FuelCellVoltageBar_208; - m[i++] = ui->FuelCellVoltageBar_209; - m[i++] = ui->FuelCellVoltageBar_210; - m[i++] = ui->FuelCellVoltageBar_211; - m[i++] = ui->FuelCellVoltageBar_212; - m[i++] = ui->FuelCellVoltageBar_213; - m[i++] = ui->FuelCellVoltageBar_214; - m[i++] = ui->FuelCellVoltageBar_215; - m[i++] = ui->FuelCellVoltageBar_216; - m[i++] = ui->FuelCellVoltageBar_217; - m[i++] = ui->FuelCellVoltageBar_218; - m[i++] = ui->FuelCellVoltageBar_219; - m[i++] = ui->FuelCellVoltageBar_220; - m[i++] = ui->FuelCellVoltageBar_221; - m[i++] = ui->FuelCellVoltageBar_222; - m[i++] = ui->FuelCellVoltageBar_223; - m[i++] = ui->FuelCellVoltageBar_224; - m[i++] = ui->FuelCellVoltageBar_225; - m[i++] = ui->FuelCellVoltageBar_226; - m[i++] = ui->FuelCellVoltageBar_227; - m[i++] = ui->FuelCellVoltageBar_228; - m[i++] = ui->FuelCellVoltageBar_229; - m[i++] = ui->FuelCellVoltageBar_230; - m[i++] = ui->FuelCellVoltageBar_231; - m[i++] = ui->FuelCellVoltageBar_232; - m[i++] = ui->FuelCellVoltageBar_233; - m[i++] = ui->FuelCellVoltageBar_234; - m[i++] = ui->FuelCellVoltageBar_235; - m[i++] = ui->FuelCellVoltageBar_236; - m[i++] = ui->FuelCellVoltageBar_237; - m[i++] = ui->FuelCellVoltageBar_238; - m[i++] = ui->FuelCellVoltageBar_239; - m[i++] = ui->FuelCellVoltageBar_240; - m[i++] = ui->FuelCellVoltageBar_241; - m[i++] = ui->FuelCellVoltageBar_242; - m[i++] = ui->FuelCellVoltageBar_243; - m[i++] = ui->FuelCellVoltageBar_244; - m[i++] = ui->FuelCellVoltageBar_245; - m[i++] = ui->FuelCellVoltageBar_246; - m[i++] = ui->FuelCellVoltageBar_247; - m[i++] = ui->FuelCellVoltageBar_248; - m[i++] = ui->FuelCellVoltageBar_249; - m[i++] = ui->FuelCellVoltageBar_250; - m[i++] = ui->FuelCellVoltageBar_251; - m[i++] = ui->FuelCellVoltageBar_252; - m[i++] = ui->FuelCellVoltageBar_253; - m[i++] = ui->FuelCellVoltageBar_254; - m[i++] = ui->FuelCellVoltageBar_255; - m[i++] = ui->FuelCellVoltageBar_256; - m[i++] = ui->FuelCellVoltageBar_257; - m[i++] = ui->FuelCellVoltageBar_258; - m[i++] = ui->FuelCellVoltageBar_259; - m[i++] = ui->FuelCellVoltageBar_260; - m[i++] = ui->FuelCellVoltageBar_261; - m[i++] = ui->FuelCellVoltageBar_262; - m[i++] = ui->FuelCellVoltageBar_263; - m[i++] = ui->FuelCellVoltageBar_264; - m[i++] = ui->FuelCellVoltageBar_265; - m[i++] = ui->FuelCellVoltageBar_266; - m[i++] = ui->FuelCellVoltageBar_267; - m[i++] = ui->FuelCellVoltageBar_268; - m[i++] = ui->FuelCellVoltageBar_269; - m[i++] = ui->FuelCellVoltageBar_270; - m[i++] = ui->FuelCellVoltageBar_271; - m[i++] = ui->FuelCellVoltageBar_272; - m[i++] = ui->FuelCellVoltageBar_273; - m[i++] = ui->FuelCellVoltageBar_274; - m[i++] = ui->FuelCellVoltageBar_275; - m[i++] = ui->FuelCellVoltageBar_276; - m[i++] = ui->FuelCellVoltageBar_277; - m[i++] = ui->FuelCellVoltageBar_278; - m[i++] = ui->FuelCellVoltageBar_279; - m[i++] = ui->FuelCellVoltageBar_280; - m[i++] = ui->FuelCellVoltageBar_281; - m[i++] = ui->FuelCellVoltageBar_282; - m[i++] = ui->FuelCellVoltageBar_283; - m[i++] = ui->FuelCellVoltageBar_284; - m[i++] = ui->FuelCellVoltageBar_285; - m[i++] = ui->FuelCellVoltageBar_286; - m[i++] = ui->FuelCellVoltageBar_287; - m[i++] = ui->FuelCellVoltageBar_288; - m[i++] = ui->FuelCellVoltageBar_289; - m[i++] = ui->FuelCellVoltageBar_290; - m[i++] = ui->FuelCellVoltageBar_291; - m[i++] = ui->FuelCellVoltageBar_292; - m[i++] = ui->FuelCellVoltageBar_293; - m[i++] = ui->FuelCellVoltageBar_294; - m[i++] = ui->FuelCellVoltageBar_295; - m[i++] = ui->FuelCellVoltageBar_296; - m[i++] = ui->FuelCellVoltageBar_297; - m[i++] = ui->FuelCellVoltageBar_298; - m[i++] = ui->FuelCellVoltageBar_299; - m[i++] = ui->FuelCellVoltageBar_300; - m[i++] = ui->FuelCellVoltageBar_301; - m[i++] = ui->FuelCellVoltageBar_302; - m[i++] = ui->FuelCellVoltageBar_303; - m[i++] = ui->FuelCellVoltageBar_304; - m[i++] = ui->FuelCellVoltageBar_305; - m[i++] = ui->FuelCellVoltageBar_306; - m[i++] = ui->FuelCellVoltageBar_307; - m[i++] = ui->FuelCellVoltageBar_308; - m[i++] = ui->FuelCellVoltageBar_309; - m[i++] = ui->FuelCellVoltageBar_310; - m[i++] = ui->FuelCellVoltageBar_311; - m[i++] = ui->FuelCellVoltageBar_312; - m[i++] = ui->FuelCellVoltageBar_313; - m[i++] = ui->FuelCellVoltageBar_314; - m[i++] = ui->FuelCellVoltageBar_315; - m[i++] = ui->FuelCellVoltageBar_316; - m[i++] = ui->FuelCellVoltageBar_317; - m[i++] = ui->FuelCellVoltageBar_318; - m[i++] = ui->FuelCellVoltageBar_319; - m[i++] = ui->FuelCellVoltageBar_320; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_1; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_2; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_3; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_4; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_5; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_6; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_7; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_8; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_9; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_10; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_11; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_12; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_13; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_14; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_15; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_16; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_17; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_18; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_19; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_20; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_21; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_22; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_23; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_24; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_25; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_26; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_27; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_28; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_29; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_30; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_31; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_32; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_33; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_34; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_35; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_36; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_37; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_38; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_39; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_40; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_41; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_42; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_43; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_44; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_45; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_46; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_47; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_48; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_49; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_50; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_51; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_52; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_53; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_54; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_55; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_56; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_57; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_58; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_59; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_60; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_61; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_62; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_63; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_64; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_65; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_66; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_67; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_68; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_69; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_70; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_71; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_72; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_73; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_74; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_75; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_76; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_77; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_78; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_79; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_80; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_81; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_82; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_83; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_84; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_85; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_86; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_87; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_88; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_89; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_90; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_91; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_92; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_93; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_94; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_95; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_96; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_97; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_98; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_99; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_100; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_101; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_102; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_103; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_104; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_105; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_106; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_107; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_108; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_109; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_110; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_111; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_112; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_113; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_114; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_115; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_116; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_117; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_118; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_119; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_120; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_121; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_122; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_123; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_124; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_125; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_126; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_127; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_128; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_129; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_130; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_131; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_132; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_133; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_134; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_135; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_136; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_137; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_138; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_139; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_140; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_141; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_142; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_143; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_144; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_145; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_146; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_147; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_148; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_149; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_150; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_151; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_152; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_153; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_154; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_155; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_156; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_157; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_158; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_159; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_160; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_161; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_162; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_163; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_164; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_165; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_166; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_167; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_168; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_169; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_170; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_171; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_172; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_173; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_174; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_175; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_176; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_177; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_178; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_179; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_180; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_181; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_182; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_183; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_184; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_185; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_186; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_187; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_188; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_189; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_190; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_191; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_192; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_193; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_194; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_195; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_196; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_197; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_198; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_199; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_200; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_201; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_202; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_203; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_204; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_205; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_206; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_207; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_208; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_209; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_210; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_211; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_212; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_213; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_214; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_215; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_216; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_217; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_218; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_219; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_220; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_221; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_222; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_223; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_224; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_225; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_226; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_227; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_228; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_229; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_230; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_231; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_232; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_233; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_234; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_235; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_236; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_237; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_238; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_239; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_240; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_241; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_242; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_243; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_244; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_245; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_246; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_247; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_248; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_249; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_250; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_251; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_252; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_253; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_254; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_255; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_256; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_257; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_258; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_259; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_260; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_261; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_262; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_263; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_264; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_265; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_266; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_267; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_268; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_269; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_270; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_271; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_272; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_273; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_274; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_275; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_276; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_277; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_278; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_279; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_280; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_281; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_282; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_283; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_284; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_285; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_286; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_287; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_288; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_289; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_290; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_291; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_292; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_293; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_294; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_295; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_296; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_297; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_298; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_299; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_300; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_301; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_302; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_303; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_304; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_305; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_306; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_307; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_308; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_309; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_310; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_311; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_312; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_313; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_314; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_315; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_316; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_317; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_318; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_319; + m_ProgressBar[i++] = ui->FuelCellVoltageBar_320; } - /*QGroupBox *FCB[85]; - { - int i = 0; - FCB[i++] = ui->FuelCellBox_1; - FCB[i++] = ui->FuelCellBox_2; - FCB[i++] = ui->FuelCellBox_3; - FCB[i++] = ui->FuelCellBox_4; - FCB[i++] = ui->FuelCellBox_5; - FCB[i++] = ui->FuelCellBox_6; - FCB[i++] = ui->FuelCellBox_7; - FCB[i++] = ui->FuelCellBox_8; - FCB[i++] = ui->FuelCellBox_9; - FCB[i++] = ui->FuelCellBox_10; - FCB[i++] = ui->FuelCellBox_11; - FCB[i++] = ui->FuelCellBox_12; - FCB[i++] = ui->FuelCellBox_13; - FCB[i++] = ui->FuelCellBox_14; - FCB[i++] = ui->FuelCellBox_15; - FCB[i++] = ui->FuelCellBox_16; - FCB[i++] = ui->FuelCellBox_17; - FCB[i++] = ui->FuelCellBox_18; - FCB[i++] = ui->FuelCellBox_19; - FCB[i++] = ui->FuelCellBox_20; - FCB[i++] = ui->FuelCellBox_21; - FCB[i++] = ui->FuelCellBox_22; - FCB[i++] = ui->FuelCellBox_23; - FCB[i++] = ui->FuelCellBox_24; - FCB[i++] = ui->FuelCellBox_25; - FCB[i++] = ui->FuelCellBox_26; - FCB[i++] = ui->FuelCellBox_27; - FCB[i++] = ui->FuelCellBox_28; - FCB[i++] = ui->FuelCellBox_29; - FCB[i++] = ui->FuelCellBox_30; - FCB[i++] = ui->FuelCellBox_31; - FCB[i++] = ui->FuelCellBox_32; - FCB[i++] = ui->FuelCellBox_33; - FCB[i++] = ui->FuelCellBox_34; - FCB[i++] = ui->FuelCellBox_35; - FCB[i++] = ui->FuelCellBox_36; - FCB[i++] = ui->FuelCellBox_37; - FCB[i++] = ui->FuelCellBox_38; - FCB[i++] = ui->FuelCellBox_39; - FCB[i++] = ui->FuelCellBox_40; - FCB[i++] = ui->FuelCellBox_41; - FCB[i++] = ui->FuelCellBox_42; - FCB[i++] = ui->FuelCellBox_43; - FCB[i++] = ui->FuelCellBox_44; - FCB[i++] = ui->FuelCellBox_45; - FCB[i++] = ui->FuelCellBox_46; - FCB[i++] = ui->FuelCellBox_47; - FCB[i++] = ui->FuelCellBox_48; - FCB[i++] = ui->FuelCellBox_49; - FCB[i++] = ui->FuelCellBox_50; - FCB[i++] = ui->FuelCellBox_51; - FCB[i++] = ui->FuelCellBox_52; - FCB[i++] = ui->FuelCellBox_53; - FCB[i++] = ui->FuelCellBox_54; - FCB[i++] = ui->FuelCellBox_55; - FCB[i++] = ui->FuelCellBox_56; - FCB[i++] = ui->FuelCellBox_57; - FCB[i++] = ui->FuelCellBox_58; - FCB[i++] = ui->FuelCellBox_59; - FCB[i++] = ui->FuelCellBox_60; - FCB[i++] = ui->FuelCellBox_61; - FCB[i++] = ui->FuelCellBox_62; - FCB[i++] = ui->FuelCellBox_63; - FCB[i++] = ui->FuelCellBox_64; - FCB[i++] = ui->FuelCellBox_65; - FCB[i++] = ui->FuelCellBox_66; - FCB[i++] = ui->FuelCellBox_67; - FCB[i++] = ui->FuelCellBox_68; - FCB[i++] = ui->FuelCellBox_69; - FCB[i++] = ui->FuelCellBox_70; - FCB[i++] = ui->FuelCellBox_71; - FCB[i++] = ui->FuelCellBox_72; - FCB[i++] = ui->FuelCellBox_73; - FCB[i++] = ui->FuelCellBox_74; - FCB[i++] = ui->FuelCellBox_75; - FCB[i++] = ui->FuelCellBox_76; - FCB[i++] = ui->FuelCellBox_77; - FCB[i++] = ui->FuelCellBox_78; - FCB[i++] = ui->FuelCellBox_79; - FCB[i++] = ui->FuelCellBox_80; - FCB[i++] = ui->FuelCellBox_81; - FCB[i++] = ui->FuelCellBox_82; - FCB[i++] = ui->FuelCellBox_83; - FCB[i++] = ui->FuelCellBox_84; - FCB[i++] = ui->FuelCellBox_85; - }*/ + m_settingsDialog = new SettingsDialog(this); @@ -449,8 +361,10 @@ M3KTE::M3KTE(QWidget *parent) } m_deviceSettingsDialog = new DeviceSettingsDialog(this); + m_regMultipleSettings = new MultipleSettings(this); modbusDevice = new QModbusRtuSerialMaster(this); + //ui->M3kteRegSettings->setEnabled(false); Boards[0].boardScanners = new QTimer(); Boards[1].boardScanners = new QTimer(); @@ -489,14 +403,26 @@ M3KTE::M3KTE(QWidget *parent) statusM3KTE.Accidents[i] = false; } + QBrush tb(Qt::transparent); // Transparent brush, solid pattern for(int i = 0; i<320; i++) { - m[i]->setValue(3); + m_ProgressBar[i]->setValue(3); QString style_fc_off = "QProgressBar {border: 2px solid black; font: bold 10px} QProgressBar::chunk {background: hsva(" + QString::number(30) + ", 30, 30, 30%);} "; - m[i]->setStyleSheet(style_fc_off); + m_ProgressBar[i]->setStyleSheet(style_fc_off); + + ThePhantomMenace[i] = new QPushButton(m_ProgressBar[i]); + ThePhantomMenace[i]->setFlat(true); + ThePhantomMenace[i]->setPalette(QPalette(tb, tb, tb, tb, tb, tb, tb, tb, tb)); + connect(ThePhantomMenace[i], &QPushButton::clicked, this, [this, i]() { + selectPositionOnTree(i); + }); } debug(); + connect(m_deviceSettingsDialog, &DeviceSettingsDialog::parityChanged, this, &M3KTE::onParityUpdate); + connect(m_deviceSettingsDialog, &DeviceSettingsDialog::speedChanged, this, &M3KTE::onSpeedUpdate); + + //Вызов окна настройки подключения //Вызов окна настройки устройства @@ -505,6 +431,10 @@ M3KTE::M3KTE(QWidget *parent) M3KTE::~M3KTE() { + if(modbusDevice->state() == QModbusDevice::ConnectedState) + { + onConnectClicked(); + } delete ui; } @@ -513,39 +443,39 @@ void M3KTE::debug() srand(time(0)); for(int i = 0; i < 320; i++) { - m[i]->setTextVisible(true); - m[i]->setMinimumSize(25, 25); - m[i]->setMaximumSize(25, 25); - m[i]->resize(25, 25); - m[i]->setAlignment(Qt::AlignCenter); - m[i]->setFormat(QString("%1").arg((i%85+1))); + m_ProgressBar[i]->setTextVisible(true); + m_ProgressBar[i]->setMinimumSize(25, 25); + m_ProgressBar[i]->setMaximumSize(25, 25); + m_ProgressBar[i]->resize(25, 25); + m_ProgressBar[i]->setAlignment(Qt::AlignCenter); + m_ProgressBar[i]->setFormat(QString("%1").arg((i%85+1))); // int j = rand()%4; // if(j!=3) j=rand()%4; -// m[i]->setValue(j); +// m_ProgressBar[i]->setValue(j); // QString style_fc = "QProgressBar {border: 2px solid black; font: bold 10px} QProgressBar::chunk {background: hsva(" + QString::number(j*50-50) + ", 255, 255, 100%);} "; // QString style_fc_off = "QProgressBar {border: 2px solid black; font: bold 10px} QProgressBar::chunk {background: hsva(" + QString::number(30) + ", 30, 30, 30%);} "; -// m[i]->setStyleSheet(style_fc); +// m_ProgressBar[i]->setStyleSheet(style_fc); // switch (j) { // case 1: // { -// m[i]->setStatusTip(QString("П%1 ТЭ%2: Аварийный уровень напряжения.").arg(QString::number(i/85+1), QString::number(i%85))); +// m_ProgressBar[i]->setStatusTip(QString("П%1 ТЭ%2: Аварийный уровень напряжения.").arg(QString::number(i/85+1), QString::number(i%85))); // break; // } // case 2: // { -// m[i]->setStatusTip(QString("П%1 ТЭ%2: Предупредительный уровень напряжения.").arg(QString::number(i/85+1), QString::number(i%85))); +// m_ProgressBar[i]->setStatusTip(QString("П%1 ТЭ%2: Предупредительный уровень напряжения.").arg(QString::number(i/85+1), QString::number(i%85))); // break; // } // case 3: // { -// m[i]->setStatusTip(QString("П%1 ТЭ%2: Уровень напряжения в норме.").arg(QString::number(i/85+1), QString::number(i%85))); +// m_ProgressBar[i]->setStatusTip(QString("П%1 ТЭ%2: Уровень напряжения в норме.").arg(QString::number(i/85+1), QString::number(i%85))); // break; // } // case 0: -// m[i]->setStatusTip(QString("П%1 ТЭ%2: Топливный Элемент не учитывается.").arg(QString::number(i/85+1), QString::number(i%85))); -// m[i]->setStyleSheet(style_fc_off); -// m[i]->setValue(3); +// m_ProgressBar[i]->setStatusTip(QString("П%1 ТЭ%2: Топливный Элемент не учитывается.").arg(QString::number(i/85+1), QString::number(i%85))); +// m_ProgressBar[i]->setStyleSheet(style_fc_off); +// m_ProgressBar[i]->setValue(3); // break; // } } @@ -571,6 +501,10 @@ void M3KTE::initActions() connect(ui->writeTable, QOverload::of(&QComboBox::currentIndexChanged), this, &M3KTE::onWriteTableChanged); + connect(ui->M3kteRegSettings, &QAction::triggered, m_regMultipleSettings, &QDialog::show); + connect(m_regMultipleSettings, &MultipleSettings::write, this, &M3KTE::slotmultipleRegWrite); + connect(m_regMultipleSettings, &MultipleSettings::writeAndSend, this, &M3KTE::slotmultipleRegWriteAndSend); + connect(ui->ConnectionMenuSettings, &QAction::triggered, m_settingsDialog, &QDialog::show); connect(ui->M3kteMenuSettings, &QAction::triggered, m_deviceSettingsDialog, &QDialog::show); } @@ -609,7 +543,9 @@ void M3KTE::onConnectClicked() tmp_adr[i] = Boards[i].adr; } - m_deviceSettingsDialog->updateSettingsAfterConnection(m_settingsDialog->settings().baud, m_settingsDialog->settings().parity, tmp_adr); + ui->M3kteRegSettings->setEnabled(true); + + m_deviceSettingsDialog->updateSettingsAfterConnection(m_settingsDialog->settings().baud, m_settingsDialog->settings().parity, tmp_adr, CurrentConnectedDevice); ui->boardSelectBox->setCurrentIndex(0); ui->writeTable->setCurrentIndex(0); @@ -626,6 +562,19 @@ void M3KTE::onConnectClicked() //Опрос устройств } } else { + QString style_fc_off = "QProgressBar {border: 2px solid black; font: bold 10px} QProgressBar::chunk {background: hsva(" + QString::number(30) + ", 30, 30, 30%);} "; + for(int i = 0; i < 4; i++) + { + Boards[i].boardScanners->stop(); + } + for(int i = 0; i < 320; i++) + { + m_ProgressBar[i]->setStatusTip(QString("П%1 ТЭ%2: Топливный Элемент не учитывается.").arg(QString::number(i/85+1), QString::number(i%85))); + m_ProgressBar[i]->setWhatsThis(QString("П%1 ТЭ%2: Топливный Элемент не учитывается.").arg(QString::number(i/85+1), QString::number(i%85))); + m_ProgressBar[i]->setValue(3); + m_ProgressBar[i]->setStyleSheet(style_fc_off); + } + modbusDevice->disconnectDevice(); ui->ConnectionMenuConnect->setEnabled(true); ui->ConnectionMenuDisconnect->setEnabled(false); @@ -639,6 +588,8 @@ void M3KTE::onConnectClicked() ui->BSM_Warning->setEnabled(false); ui->BSM_Accident->setEnabled(false); ui->BSM_WorkInProgress->setEnabled(false); + + ui->M3kteRegSettings->setEnabled(false); } } @@ -649,6 +600,7 @@ void M3KTE::onReadButtonClicked() //ui->readValue->clear(); statusBar()->clearMessage(); + if (auto *reply = modbusDevice->sendReadRequest(readRequest(), Boards[ui->boardSelectBox->currentIndex()].adr)) { if (!reply->isFinished()) connect(reply, &QModbusReply::finished, this, &M3KTE::onReadReady); @@ -684,7 +636,7 @@ void M3KTE::onReadReady() if (reply->error() == QModbusDevice::NoError) { const QModbusDataUnit unit = reply->result(); int Adr = 255; - for(int i = 0; i < 4; i++) + for(int i = 0; i < CurrentConnectedDevice; i++) { if(Boards[i].adr==reply->serverAddress()) { @@ -692,19 +644,21 @@ void M3KTE::onReadReady() break; } } - for (int i = unit.startAddress(), total = int(unit.valueCount()); i < total; ++i) { + for (int i = 0, total = int(unit.valueCount()); i < total; ++i) { //ui->readValue->addItem(entry); if(unit.registerType() == QModbusDataUnit::Coils) { //QStandardItem *item = ui->writeValueTable->model()->item + Boards[Adr].coil[i + unit.startAddress()] = unit.value(i); if(unit.value(i)==1) - Boards[Adr].ModbusModelCoil->setData(ui->writeValueTable->model()->index(i, 2), Qt::Checked, Qt::CheckStateRole); + Boards[Adr].ModbusModelCoil->setData(ui->writeValueTable->model()->index(i + unit.startAddress(), 2), Qt::Checked, Qt::CheckStateRole); else - Boards[Adr].ModbusModelCoil->setData(ui->writeValueTable->model()->index(i, 2), Qt::Unchecked, Qt::CheckStateRole); + Boards[Adr].ModbusModelCoil->setData(ui->writeValueTable->model()->index(i + unit.startAddress(), 2), Qt::Unchecked, Qt::CheckStateRole); } else if(unit.registerType() == QModbusDataUnit::HoldingRegisters) { - Boards[Adr].ModbusModelHoldingReg->setData(ui->writeValueTable->model()->index(i, 3), QString::number(unit.value(i), 16), Qt::EditRole); + Boards[Adr].HR[i + unit.startAddress()] = unit.value(i); + Boards[Adr].ModbusModelHoldingReg->setData(ui->writeValueTable->model()->index(i + unit.startAddress(), 3), QString::number(unit.value(i), 16), Qt::EditRole); } } } else if (reply->error() == QModbusDevice::ProtocolError) { @@ -730,9 +684,15 @@ void M3KTE::onWriteButtonClicked() QModbusDataUnit::RegisterType table = writeUnit.registerType(); for (int i = 0, total = int(writeUnit.valueCount()); i < total; ++i) { if (table == QModbusDataUnit::Coils) + { + Boards[ui->boardSelectBox->currentIndex()].coil[i+writeUnit.startAddress()] = Boards[ui->boardSelectBox->currentIndex()].ModbusModelCoil->m_coils[i + writeUnit.startAddress()]; writeUnit.setValue(i, Boards[ui->boardSelectBox->currentIndex()].ModbusModelCoil->m_coils[i + writeUnit.startAddress()]); + } else + { + Boards[ui->boardSelectBox->currentIndex()].HR[i+writeUnit.startAddress()] = Boards[ui->boardSelectBox->currentIndex()].ModbusModelHoldingReg->m_holdingRegisters[i+writeUnit.startAddress()]; writeUnit.setValue(i, Boards[ui->boardSelectBox->currentIndex()].ModbusModelHoldingReg->m_holdingRegisters[i + writeUnit.startAddress()]); + } } if (auto *reply = modbusDevice->sendWriteRequest(writeUnit, Boards[ui->boardSelectBox->currentIndex()].adr)) { @@ -745,7 +705,7 @@ void M3KTE::onWriteButtonClicked() } else if (reply->error() != QModbusDevice::NoError) { statusBar()->showMessage(tr("Write response error: %1 (code: 0x%2)"). arg(reply->errorString()).arg(reply->error(), -1, 16), 5000); - } + } reply->deleteLater(); }); } else { @@ -846,16 +806,50 @@ bool M3KTE::event(QEvent *event) BoardIdHasBeenChanged* _event = static_cast(event); QModbusDataUnit* _unit = new QModbusDataUnit(QModbusDataUnit::HoldingRegisters, 172, 1); _unit->setValue(0, _event->BoardNewID()); - modbusDevice->sendWriteRequest(*_unit, Boards[_event->BoardNum()].adr); - if (auto *reply = modbusDevice->sendReadRequest(*_unit, Boards[_event->BoardNum()]._tmp_adr)) + if (auto *reply = modbusDevice->sendWriteRequest(*_unit, Boards[_event->BoardNum()].adr)) { - if (!reply->isFinished()) - connect(reply, &QModbusReply::finished, this, &M3KTE::onReadReady); + if(!reply->isFinished()) + connect(reply, &QModbusReply::finished, this, [reply, this, _event, _unit]() + { + if(reply->error()==QModbusDevice::TimeoutError) + { + if (auto *subreply = modbusDevice->sendReadRequest(*_unit, Boards[_event->BoardNum()]._tmp_adr)) + { + if (!subreply->isFinished()) + connect(subreply, &QModbusReply::finished, this, &M3KTE::checkAdrChange); + else + { + errorAdrChange(); + delete subreply; // broadcast replies return immediately + } + } else { + errorAdrChange(); + } + } + else + { + errorAdrChange(); + } + }); + else + { + delete reply; + } + } else - delete reply; // broadcast replies return immediately - } else { + { errorAdrChange(); } +// if (auto *reply = modbusDevice->sendReadRequest(*_unit, Boards[_event->BoardNum()]._tmp_adr)) +// { +// if (!reply->isFinished()) +// connect(reply, &QModbusReply::finished, this, &M3KTE::checkAdrChange); +// else +// delete reply; // broadcast replies return immediately +// } else { +// errorAdrChange(); +// } + m_deviceSettingsDialog->show(); return true; } return QWidget::event(event); @@ -870,7 +864,7 @@ void M3KTE::checkAdrChange() return; } if (reply->error() == QModbusDevice::NoError) { - for (int i = 0; i < 4; i++) { + for (int i = 0; i < CurrentConnectedDevice; i++) { if(Boards[i]._tmp_adr == reply->serverAddress()) { //OK @@ -903,14 +897,56 @@ void M3KTE::onSpeedUpdate() QModbusDataUnit* _unit = new QModbusDataUnit(QModbusDataUnit::HoldingRegisters, 173, 1); _unit->setValue(0, m_deviceSettingsDialog->currentSpeed()); - for (int i = 0; i < 4; i++) { - modbusDevice->sendWriteRequest(*_unit, Boards[i].adr); + for (int i = 0; i < CurrentConnectedDevice; i++) { + auto *reply = modbusDevice->sendWriteRequest(*_unit, Boards[i].adr); + { + if (!reply->isFinished()) + connect(reply, &QModbusReply::finished, this, [this, reply, i](){ + if(reply->error()==QModbusDevice::TimeoutError) + { + modbusDevice->disconnectDevice(); + modbusDevice->setConnectionParameter(QModbusDevice::SerialBaudRateParameter, + m_settingsDialog->UpdateBaud(m_deviceSettingsDialog->currentSpeed())); + modbusDevice->connectDevice(); + QModbusDataUnit* _unit = new QModbusDataUnit(QModbusDataUnit::InputRegisters, 85, 1); + if (auto *subreply = modbusDevice->sendReadRequest(*_unit, Boards[i].adr)) + { + if (!subreply->isFinished()) + connect(subreply, &QModbusReply::finished, this, [subreply, this, i](){ + if(subreply->error() != QModbusDevice::NoError) + { + QMessageBox msgBox; + msgBox.setText(tr("Не удалось изменить скорость платы %1.").arg(i)); + msgBox.setStandardButtons(QMessageBox::Ok); + msgBox.setDefaultButton(QMessageBox::Ok); + int ret = msgBox.exec(); + } + }); + else + { + QMessageBox msgBox; + msgBox.setText(tr("Не удалось изменить скорость платы %1.").arg(i)); + msgBox.setStandardButtons(QMessageBox::Ok); + msgBox.setDefaultButton(QMessageBox::Ok); + int ret = msgBox.exec(); + delete subreply; // broadcast replies return immediately + } + } else { + QMessageBox msgBox; + msgBox.setText(tr("Не удалось изменить скорость платы %1.").arg(i)); + msgBox.setStandardButtons(QMessageBox::Ok); + msgBox.setDefaultButton(QMessageBox::Ok); + int ret = msgBox.exec(); + } + + } + }); + else + delete reply; // broadcast replies return immediately + } } - modbusDevice->disconnectDevice(); - modbusDevice->setConnectionParameter(QModbusDevice::SerialBaudRateParameter, - m_settingsDialog->UpdateBaud(m_deviceSettingsDialog->currentSpeed())); - modbusDevice->connectDevice(); + } void M3KTE::onParityUpdate() @@ -936,14 +972,53 @@ void M3KTE::onParityUpdate() break; } } - for (int i = 0; i < 4; i++) { - modbusDevice->sendWriteRequest(*_unit, Boards[i].adr); + for (int i = 0; i < CurrentConnectedDevice; i++) { + auto *reply = modbusDevice->sendWriteRequest(*_unit, Boards[i].adr); + { + if (!reply->isFinished()) + connect(reply, &QModbusReply::finished, this, [this, reply, i](){ + if(reply->error()==QModbusDevice::TimeoutError) + { + modbusDevice->disconnectDevice(); + modbusDevice->setConnectionParameter(QModbusDevice::SerialParityParameter, + m_settingsDialog->UpdateParity(m_deviceSettingsDialog->currentParity())); + modbusDevice->connectDevice(); + QModbusDataUnit* _unit = new QModbusDataUnit(QModbusDataUnit::InputRegisters, 85, 1); + if (auto *subreply = modbusDevice->sendReadRequest(*_unit, Boards[i].adr)) + { + if (!subreply->isFinished()) + connect(subreply, &QModbusReply::finished, this, [subreply, this, i](){ + if(subreply->error() != QModbusDevice::NoError) + { + QMessageBox msgBox; + msgBox.setText(tr("Не удалось изменить чётность платы %1.").arg(i)); + msgBox.setStandardButtons(QMessageBox::Ok); + msgBox.setDefaultButton(QMessageBox::Ok); + int ret = msgBox.exec(); + } + }); + else + { + QMessageBox msgBox; + msgBox.setText(tr("Не удалось изменить чётность платы %1.").arg(i)); + msgBox.setStandardButtons(QMessageBox::Ok); + msgBox.setDefaultButton(QMessageBox::Ok); + int ret = msgBox.exec(); + delete subreply; // broadcast replies return immediately + } + } else { + QMessageBox msgBox; + msgBox.setText(tr("Не удалось изменить чётность платы %1.").arg(i)); + msgBox.setStandardButtons(QMessageBox::Ok); + msgBox.setDefaultButton(QMessageBox::Ok); + int ret = msgBox.exec(); + } + } + }); + else + delete reply; // broadcast replies return immediately + } } - - modbusDevice->disconnectDevice(); - modbusDevice->setConnectionParameter(QModbusDevice::SerialParityParameter, - m_settingsDialog->UpdateParity(m_deviceSettingsDialog->currentParity())); - modbusDevice->connectDevice(); } bool M3KTE::pingNetworkDevices() @@ -955,40 +1030,68 @@ bool M3KTE::pingNetworkDevices() QModbusDataUnit* _unit = new QModbusDataUnit(QModbusDataUnit::InputRegisters, 85, 1); int tmp_adr = 1; + bool isRun = false; + bool *tmp_isRun = &isRun; auto bar = new QProgressDialog(this); + connect(bar, &QProgressDialog::canceled, this, [this, tmp_isRun]() + { + *tmp_isRun = true; + }); bar->setLabelText(tr("Поиск плат...")); bar->setCancelButton(nullptr); bar->setRange(0, 4); bar->setMinimumDuration(100); bar->setValue(i); + CurrentConnectedDevice = 0; - for(i=0; i<1;) + for(i=0; i<4;) { - bar->setValue(i); + + if(isRun && CurrentConnectedDevice < 1) + { + onConnectClicked(); + return false; + } + else if(isRun) + { + break; + } timerForPingSignal = false; timer->start(m_settingsDialog->settings().responseTime); auto *reply = modbusDevice->sendReadRequest(*_unit, tmp_adr); while(!reply->isFinished() && !timerForPingSignal) { + if(isRun && CurrentConnectedDevice < 1) + { + onConnectClicked(); + return false; + } + else if(isRun) + { + break; + } QCoreApplication::processEvents(); } if(timerForPingSignal) { - } else { if(reply->error()==QModbusDevice::NoError) { timer->stop(); + CurrentConnectedDevice++; Boards[i].adr = Boards[i]._tmp_adr = tmp_adr; + statusBar()->showMessage(tr("Плата %1 найдена по адресу %2.").arg(i).arg(tmp_adr), m_settingsDialog->settings().responseTime); i++; + bar->setValue(i); } } tmp_adr++; - if(tmp_adr>=247) + bar->setLabelText(tr("Поиск плат... Текущий адрес: %1").arg(tmp_adr)); + if(tmp_adr>=247 && (CurrentConnectedDevice<1)) { //ERROR //OUT OF RANGE @@ -998,25 +1101,48 @@ bool M3KTE::pingNetworkDevices() onConnectClicked(); return false; } + else if(tmp_adr>=247) + { + break; + } } - bar->setLabelText(tr("Сканирование регистров...")); - bar->setValue(0); - bar->setRange(0, 12); + isRun=false; + QMessageBox::warning(this, "Сканирование сети завершено.", tr("Найдено плат: %1 из 4.").arg(i)); + if(isRun) + { + onConnectClicked(); + return false; + } + + bar->setLabelText(tr("Считывание текущих настроек...")); + + bar->setRange(0, CurrentConnectedDevice*3); QModbusDataUnit* _unit_settings[3]; _unit_settings[0] = new QModbusDataUnit(QModbusDataUnit::Coils, 0, 85); _unit_settings[1] = new QModbusDataUnit(QModbusDataUnit::HoldingRegisters, 0, 85); _unit_settings[2] = new QModbusDataUnit(QModbusDataUnit::HoldingRegisters, 85, 85); - for(i=0; i<1; i++) + for(i=0; isetValue(i*3+j); + if(isRun) + { + onConnectClicked(); + return false; + } + timerForPingSignal = false; timer->start(m_settingsDialog->settings().responseTime); auto *reply = modbusDevice->sendReadRequest(*_unit_settings[j], Boards[i].adr); while(!reply->isFinished() && !timerForPingSignal) { + if(isRun) + { + onConnectClicked(); + return false; + } QCoreApplication::processEvents(); } if(timerForPingSignal) @@ -1035,7 +1161,7 @@ bool M3KTE::pingNetworkDevices() else { QMessageBox::warning(this, "Ошибка при получении текущих настроек.", QString("Таймаут при опросе устройства %1 по адресу %2").arg(i).arg(Boards[i].adr)); - bar->setValue(12); + bar->setValue(CurrentConnectedDevice*3); onConnectClicked(); return false; } @@ -1055,10 +1181,14 @@ void M3KTE::timeForPingIsGone() void M3KTE::beginScanBoards() { - firstBoardScan(); - //secondBoardScan(); - //thirdBoardScan(); - //fourthBoardScan(); + if(CurrentConnectedDevice>=1) + firstBoardScan(); + if(CurrentConnectedDevice>=2) + secondBoardScan(); + if(CurrentConnectedDevice>=3) + thirdBoardScan(); + if(CurrentConnectedDevice>=4) + fourthBoardScan(); return; } @@ -1193,40 +1323,46 @@ void M3KTE::displayResultOfScan(QModbusReply *reply, int boardID) { //QErrorMessage::showMessage() //if(Boards[boardID].ModbusModelCoil->data(Boards[boardID].ModbusModelCoil->index(i, 2), Qt::CheckStateRole).Bool != 0) - if(Boards[boardID].ModbusModelCoil->get_coil(Boards[boardID].ModbusModelCoil->index(i, 2))==true) + //if(Boards[boardID].ModbusModelCoil->get_coil(Boards[boardID].ModbusModelCoil->index(i, 2))==true) + if(Boards[boardID].coil[i]==true) { int j = 0; - if(Boards[boardID].ModbusModelHoldingReg->get_holreg(Boards[boardID].ModbusModelHoldingReg->index(85+i, 3)) > unit.value(i)) + //if(Boards[boardID].ModbusModelHoldingReg->get_holreg(Boards[boardID].ModbusModelHoldingReg->index(85+i, 3)) > unit.value(i)) + if(Boards[boardID].HR[i + 85] > unit.value(i)) { j = 1; - m[i+boardID*85]->setStatusTip(QString("П%1 ТЭ%2: Аварийный уровень напряжения.").arg(QString::number(boardID+1), QString::number(i%85))); - m[i+boardID*85]->setWhatsThis(QString("П%1 ТЭ%2: Аварийный уровень напряжения.").arg(QString::number(boardID+1), QString::number(i%85))); + m_ProgressBar[i+boardID*85]->setStatusTip(QString("П%1 ТЭ%2: Аварийный уровень напряжения.").arg(QString::number(boardID+1), QString::number(i%85))); + m_ProgressBar[i+boardID*85]->setWhatsThis(QString("П%1 ТЭ%2: Аварийный уровень напряжения.").arg(QString::number(boardID+1), QString::number(i%85))); A_Flag = true; } - else if(Boards[boardID].ModbusModelHoldingReg->get_holreg(Boards[boardID].ModbusModelHoldingReg->index(i, 3)) > unit.value(i)) + //else if(Boards[boardID].ModbusModelHoldingReg->get_holreg(Boards[boardID].ModbusModelHoldingReg->index(i, 3)) > unit.value(i)) + else if(Boards[boardID].HR[i] > unit.value(i)) { j = 2; - m[i+boardID*85]->setStatusTip(QString("П%1 ТЭ%2: Предупредительный уровень напряжения.").arg(QString::number(boardID+1), QString::number(i%85))); - m[i+boardID*85]->setWhatsThis(QString("П%1 ТЭ%2: Предупредительный уровень напряжения.").arg(QString::number(boardID+1), QString::number(i%85))); + m_ProgressBar[i+boardID*85]->setStatusTip(QString("П%1 ТЭ%2: Предупредительный уровень напряжения.").arg(QString::number(boardID+1), QString::number(i%85))); + m_ProgressBar[i+boardID*85]->setWhatsThis(QString("П%1 ТЭ%2: Предупредительный уровень напряжения.").arg(QString::number(boardID+1), QString::number(i%85))); W_Flag = true; } else { j = 3; - m[i+boardID*85]->setStatusTip(QString("П%1 ТЭ%2: Уровень напряжения в норме.").arg(QString::number(boardID+1), QString::number(i%85))); - m[i+boardID*85]->setWhatsThis(QString("П%1 ТЭ%2: Уровень напряжения в норме.").arg(QString::number(boardID+1), QString::number(i%85))); + m_ProgressBar[i+boardID*85]->setStatusTip(QString("П%1 ТЭ%2: Уровень напряжения в норме.").arg(QString::number(boardID+1), QString::number(i%85))); + m_ProgressBar[i+boardID*85]->setWhatsThis(QString("П%1 ТЭ%2: Уровень напряжения в норме.").arg(QString::number(boardID+1), QString::number(i%85))); } - m[i+boardID*85]->setValue(j); + m_ProgressBar[i+boardID*85]->setValue(j); QString style_fc = "QProgressBar {border: 2px solid black; font: bold 10px} QProgressBar::chunk {background: hsva(" + QString::number(j*50-50) + ", 255, 255, 100%);} "; - m[i+boardID*85]->setStyleSheet(style_fc); + m_ProgressBar[i+boardID*85]->setStyleSheet(style_fc); } else { - m[i+boardID*85]->setStatusTip(QString("П%1 ТЭ%2: Топливный Элемент не учитывается.").arg(QString::number(boardID+1), QString::number(i%85))); - m[i+boardID*85]->setWhatsThis(QString("П%1 ТЭ%2: Топливный Элемент не учитывается.").arg(QString::number(boardID+1), QString::number(i%85))); + m_ProgressBar[i+boardID*85]->setValue(3); + m_ProgressBar[i+boardID*85]->setStatusTip(QString("П%1 ТЭ%2: Топливный Элемент не учитывается.").arg(QString::number(boardID+1), QString::number(i%85))); + m_ProgressBar[i+boardID*85]->setWhatsThis(QString("П%1 ТЭ%2: Топливный Элемент не учитывается.").arg(QString::number(boardID+1), QString::number(i%85))); QString style_fc_off = "QProgressBar {border: 2px solid black; font: bold 10px} QProgressBar::chunk {background: hsva(" + QString::number(30) + ", 30, 30, 30%);} "; - m[i+boardID*85]->setStyleSheet(style_fc_off); + m_ProgressBar[i+boardID*85]->setStyleSheet(style_fc_off); } + Boards[boardID].ModbusModelCoil->set_currentU(unit.value(i), i); + Boards[boardID].ModbusModelHoldingReg->set_currentU(unit.value(i), i); } if(A_Flag) statusM3KTE.Accidents[boardID] = true; @@ -1281,19 +1417,26 @@ void M3KTE::stepForScanCurrentSettings(QModbusReply *reply) break; } } - for (int i = unit.startAddress(), total = int(unit.valueCount()); i < total; ++i) { + for (int i = 0, total = int(unit.valueCount()); i < (total); ++i) { //ui->readValue->addItem(entry); if(unit.registerType() == QModbusDataUnit::Coils) { + Boards[Adr].coil[i + unit.startAddress()] = unit.value(i); //QStandardItem *item = ui->writeValueTable->model()->item if(unit.value(i)==1) - Boards[Adr].ModbusModelCoil->setData(ui->writeValueTable->model()->index(i, 2), Qt::Checked, Qt::CheckStateRole); + { + Boards[Adr].ModbusModelCoil->setData(ui->writeValueTable->model()->index(i + unit.startAddress(), 2), Qt::Checked, Qt::CheckStateRole); + } else - Boards[Adr].ModbusModelCoil->setData(ui->writeValueTable->model()->index(i, 2), Qt::Unchecked, Qt::CheckStateRole); + { + Boards[Adr].ModbusModelCoil->setData(ui->writeValueTable->model()->index(i + unit.startAddress(), 2), Qt::Unchecked, Qt::CheckStateRole); + } + } else if(unit.registerType() == QModbusDataUnit::HoldingRegisters) { - Boards[Adr].ModbusModelHoldingReg->setData(ui->writeValueTable->model()->index(i, 3), QString::number(unit.value(i), 16), Qt::EditRole); + Boards[Adr].HR[i + unit.startAddress()] = unit.value(i); + Boards[Adr].ModbusModelHoldingReg->setData(Boards[Adr].ModbusModelHoldingReg->index(i + unit.startAddress(), 3), QString::number(unit.value(i), 16), Qt::EditRole); } } } else if (reply->error() == QModbusDevice::ProtocolError) { @@ -1308,3 +1451,88 @@ void M3KTE::stepForScanCurrentSettings(QModbusReply *reply) reply->deleteLater(); } + +void M3KTE::slotmultipleRegWrite() +{ + if (!modbusDevice) + return; + multipleRegWrite(); +} + +void M3KTE::slotmultipleRegWriteAndSend() +{ + if (!modbusDevice) + return; + multipleRegWrite(); + multipleRegSend(); +} + +void M3KTE::multipleRegSend() +{ + QModbusDataUnit *unit_tx = nullptr; + if(m_regMultipleSettings->getTypeReg()) + { + unit_tx = new QModbusDataUnit(QModbusDataUnit::HoldingRegisters, m_regMultipleSettings->getStartAdr(), m_regMultipleSettings->getCountReg()); + } + else + { + unit_tx = new QModbusDataUnit(QModbusDataUnit::Coils, m_regMultipleSettings->getStartAdr(), m_regMultipleSettings->getCountReg()); + } + for (unsigned i = 0; i < m_regMultipleSettings->getCountReg(); i++) { + unit_tx->setValue(i, m_regMultipleSettings->getNewValue()); + if(m_regMultipleSettings->getTypeReg()) + { + Boards[m_regMultipleSettings->getBoardId()].HR[i+m_regMultipleSettings->getStartAdr()] = m_regMultipleSettings->getNewValue(); + } + else + { + Boards[m_regMultipleSettings->getBoardId()].coil[i+m_regMultipleSettings->getStartAdr()] = m_regMultipleSettings->getNewValue(); + } + } + + if (auto *reply = modbusDevice->sendWriteRequest(*unit_tx, Boards[m_regMultipleSettings->getBoardId()].adr)) { + if (!reply->isFinished()) { + connect(reply, &QModbusReply::finished, this, [this, reply]() { + if (reply->error() == QModbusDevice::ProtocolError) { + statusBar()->showMessage(tr("Write response error: %1 (Mobus exception: 0x%2)") + .arg(reply->errorString()).arg(reply->rawResult().exceptionCode(), -1, 16), + 5000); + } else if (reply->error() != QModbusDevice::NoError) { + statusBar()->showMessage(tr("Write response error: %1 (code: 0x%2)"). + arg(reply->errorString()).arg(reply->error(), -1, 16), 5000); + } + reply->deleteLater(); + }); + } else { + // broadcast replies return immediately + reply->deleteLater(); + } + } else { + statusBar()->showMessage(tr("Write error: ") + modbusDevice->errorString(), 5000); + } +} + +void M3KTE::multipleRegWrite() +{ + for (unsigned i = 0; i < m_regMultipleSettings->getCountReg(); i++) { + if(m_regMultipleSettings->getTypeReg()) + { + //Boards[m_regMultipleSettings->getBoardId()].HR[i] = m_regMultipleSettings->getNewValue(); + Boards[m_regMultipleSettings->getBoardId()].ModbusModelHoldingReg->m_holdingRegisters[i+m_regMultipleSettings->getStartAdr()] = m_regMultipleSettings->getNewValue(); + } + else + { + //Boards[m_regMultipleSettings->getBoardId()].coil[i] = m_regMultipleSettings->getNewValue(); + Boards[m_regMultipleSettings->getBoardId()].ModbusModelCoil->m_coils[i+m_regMultipleSettings->getStartAdr()] = (bool)m_regMultipleSettings->getNewValue(); + } + } +} + +void M3KTE::selectPositionOnTree(unsigned int index) +{ + ui->boardSelectBox->setCurrentIndex(index/85); + QModelIndex selected = ui->writeValueTable->model()->index(index%85, 0); + ui->writeValueTable->selectionModel()->select(selected, QItemSelectionModel::ClearAndSelect |QItemSelectionModel::Rows); + ui->writeValueTable->scrollTo(selected); + //selection +} diff --git a/M3KTE_TERM/m3kte.h b/M3KTE_TERM/m3kte.h index 2fc1048..349ebdb 100644 --- a/M3KTE_TERM/m3kte.h +++ b/M3KTE_TERM/m3kte.h @@ -8,6 +8,7 @@ #include #include "writeregistermodel.h" #include "devicesettingsdialog.h" +#include "multiplesettings.h" #include #include @@ -16,6 +17,7 @@ #include #include #include +#include #include @@ -45,7 +47,16 @@ private: void beginScanBoards(); void displayResultOfScan(QModbusReply *reply, int boardID); void stepForScanCurrentSettings(QModbusReply *reply); + + void multipleRegWrite(); + void multipleRegSend(); + + void selectPositionOnTree(unsigned index); private slots: + + void slotmultipleRegWrite(); + void slotmultipleRegWriteAndSend(); + void onConnectClicked(); void onReadButtonClicked(); @@ -62,7 +73,6 @@ private slots: void onSpeedUpdate(); void onParityUpdate(); - void firstBoardScan(); void secondBoardScan(); void thirdBoardScan(); @@ -77,17 +87,17 @@ public: ~M3KTE(); private: - bool timerForPingSignal = false; - - - Ui::M3KTE *ui; + bool timerForPingSignal = false; + int CurrentConnectedDevice = 0; //int DeviceOnNetwork[4]; - QProgressBar *m[320]; + QProgressBar *m_ProgressBar[320]; + QPushButton *ThePhantomMenace[320]; QModbusReply *lastRequest = nullptr; QModbusClient *modbusDevice = nullptr; DeviceSettingsDialog *m_deviceSettingsDialog = nullptr; SettingsDialog *m_settingsDialog = nullptr; + MultipleSettings *m_regMultipleSettings = nullptr; //WriteRegisterModel *writeModel = nullptr; struct StatusM3KTE{ @@ -99,6 +109,10 @@ private: { int adr; int _tmp_adr; + + bool coil[85]; + unsigned HR[170]; + WriteRegisterModel *ModbusModelCoil; WriteRegisterModel *ModbusModelHoldingReg; QTimer *boardScanners; diff --git a/M3KTE_TERM/m3kte.ui b/M3KTE_TERM/m3kte.ui index 2a435a7..0099fb2 100644 --- a/M3KTE_TERM/m3kte.ui +++ b/M3KTE_TERM/m3kte.ui @@ -7,7 +7,7 @@ 0 0 956 - 598 + 601 @@ -48,15 +48,69 @@ 6 - - + + - Плата №4 + Статус МЗКТЕ - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 3 + + + 3 + + + 3 + + + 3 + + + + + Работа + + + true + + + + + + + Предупреждение + + + true + + + + + + + false + + + Авария + + + + + + + + + + + 0 + 0 + - + + Статус Терминала + + 3 @@ -72,10 +126,57 @@ 3 - - - - + + + + Подключено + + + true + + + + + + + Отключено + + + true + + + + + + + + + + Плата №2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + 3 + + + 3 + + + 3 + + + 3 + + + 3 + + + + + 0 @@ -117,8 +218,8 @@ - - + + 0 @@ -161,7 +262,7 @@ - + 0 @@ -203,8 +304,8 @@ - - + + 0 @@ -247,7 +348,7 @@ - + 0 @@ -291,10 +392,53 @@ - - + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + - + 0 @@ -337,50 +481,7 @@ - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - + 0 @@ -423,7 +524,7 @@ - + 0 @@ -466,7 +567,3830 @@ - + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + 0 + 25 + + + + Записать + + + + + + + + Плата №1 + + + + + Плата №2 + + + + + Плата №3 + + + + + Плата №4 + + + + + + + + + + + + 0 + 25 + + + + Считать + + + + + + + + + + + + Плата №4 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + 3 + + + 3 + + + 3 + + + 3 + + + 3 + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + 0 @@ -729,96 +4653,53 @@ - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - + + - + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + 0 @@ -861,7 +4742,50 @@ - + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + 0 @@ -904,7 +4828,7 @@ - + 0 @@ -948,10 +4872,53 @@ - - + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + - + 0 @@ -994,7 +4961,7 @@ - + 0 @@ -1037,50 +5004,7 @@ - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - + 0 @@ -1123,7 +5047,7 @@ - + 0 @@ -1386,6 +5310,225 @@ + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + @@ -1824,225 +5967,6 @@ - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - @@ -2262,6 +6186,225 @@ + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + @@ -2481,53 +6624,10 @@ - - + + - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - + 0 @@ -2570,7 +6670,50 @@ - + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + 0 @@ -2613,7 +6756,7 @@ - + 0 @@ -2656,7 +6799,7 @@ - + 0 @@ -2700,224 +6843,18 @@ - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - + + + + Qt::Vertical + + + + 20 + 40 + + + @@ -2946,10 +6883,10 @@ 3 - - - - + + + + 0 @@ -2992,402 +6929,7 @@ - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - + 0 @@ -3430,269 +6972,7 @@ - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - + 0 @@ -3735,7 +7015,7 @@ - + 0 @@ -3778,7 +7058,7 @@ - + 0 @@ -4260,225 +7540,6 @@ - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - @@ -4698,6 +7759,1101 @@ + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + @@ -4917,6 +9073,225 @@ + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + @@ -5355,96 +9730,10 @@ - - + + - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - + 0 @@ -5487,7 +9776,93 @@ - + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + 0 @@ -5530,7 +9905,7 @@ - + 0 @@ -5793,2665 +10168,10 @@ - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - Плата №2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - 3 - - - 3 - - - 3 - - - 3 - - - 3 - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - + + + 0 @@ -8494,269 +10214,7 @@ - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - + 0 @@ -8799,183 +10257,7 @@ - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - + 0 @@ -9018,7 +10300,7 @@ - + 0 @@ -9061,7 +10343,7 @@ - + 0 @@ -9106,9 +10388,52 @@ - + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + - + 0 @@ -9151,50 +10476,7 @@ - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - + 0 @@ -9237,7 +10519,7 @@ - + 0 @@ -9280,7 +10562,7 @@ - + 0 @@ -9324,1100 +10606,18 @@ - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - + + + + Qt::Vertical + + + + 20 + 40 + + + @@ -10665,10 +10865,10 @@ - - - - + + + + 0 @@ -10711,7 +10911,50 @@ - + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + 0 @@ -10754,50 +10997,7 @@ - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - + 0 @@ -10840,7 +11040,883 @@ - + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + 0 @@ -11541,444 +12617,6 @@ - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - @@ -12198,444 +12836,6 @@ - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - @@ -13074,53 +13274,10 @@ - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - + + - + 0 @@ -13162,8 +13319,8 @@ - - + + 0 @@ -13206,7 +13363,50 @@ - + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + 0 @@ -13249,7 +13449,7 @@ - + 0 @@ -13293,229 +13493,10 @@ - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - + + - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - - - - - + 0 @@ -13558,50 +13539,7 @@ - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - - - + 0 @@ -13644,7 +13582,50 @@ - + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + 0 @@ -13687,7 +13668,7 @@ - + 0 @@ -13995,49 +13976,6 @@ - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - @@ -14081,49 +14019,6 @@ - - - - - 0 - 0 - - - - - 25 - 25 - - - - - 25 - 25 - - - - 3 - - - 2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - Qt::Vertical - - - false - - - QProgressBar::TopToBottom - - - - - - @@ -14167,172 +14062,329 @@ + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + - - - - - - - - 0 - 0 - - - - Статус Терминала - - - - 3 - - - 3 - - - 3 - - - 3 - - - 3 - - - - - Отключено - - - true - - + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 25 + 25 + + + + 3 + + + 2 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::Vertical + + + false + + + QProgressBar::TopToBottom + + + + + + + - - - - Подключено + + + + Qt::Vertical - - true + + + 20 + 40 + - + - - - - Статус МЗКТЕ - - - - 3 - - - 3 - - - 3 - - - 3 - - - - - Работа - - - true - - - - - - - Предупреждение - - - true - - - - - - - false - - - Авария - - - - - - - - - - - - - 0 - 25 - - - - Записать - - - - - - - - Плата №1 - - - - - Плата №2 - - - - - Плата №3 - - - - - Плата №4 - - - - - - - - - - - - 0 - 25 - - - - Считать - - - - - - - - @@ -14358,6 +14410,7 @@ МЗКТЕ + @@ -14383,6 +14436,11 @@ Отключить + + + Редактировать уставки + + diff --git a/M3KTE_TERM/multiplesettings.cpp b/M3KTE_TERM/multiplesettings.cpp new file mode 100644 index 0000000..18ba4fc --- /dev/null +++ b/M3KTE_TERM/multiplesettings.cpp @@ -0,0 +1,75 @@ +#include "multiplesettings.h" +#include "ui_multiplesettings.h" + +MultipleSettings::MultipleSettings(QWidget *parent) : + QDialog(parent), + ui(new Ui::MultipleSettings) +{ + ui->setupUi(this); + + ui->buttonBox->button(QDialogButtonBox::Ok)->setText("Записать"); + ui->buttonBox->button(QDialogButtonBox::SaveAll)->setText("Записать и установить"); +} + +MultipleSettings::~MultipleSettings() +{ + delete ui; +} + +void MultipleSettings::on_buttonBox_clicked(QAbstractButton *button) +{ + if(button == ui->buttonBox->button(QDialogButtonBox::Ok)) + { + newValue = ui->regValueLine->text().toInt(nullptr, 16); + typeReg = ui->regTypeBox->currentIndex(); + startAdr = ui->adrBox->value(); + countReg = ui->countBox->value(); + boardId = ui->boardBox->currentIndex(); + emit write(); + } + else if (button == ui->buttonBox->button(QDialogButtonBox::SaveAll)) + { + newValue = ui->regValueLine->text().toInt(nullptr, 16); + typeReg = ui->regTypeBox->currentIndex(); + startAdr = ui->adrBox->value(); + countReg = ui->countBox->value(); + boardId = ui->boardBox->currentIndex(); + emit writeAndSend(); + } + else + { + + } +} + +void MultipleSettings::on_regTypeBox_currentIndexChanged(int index) +{ + switch (index) { + case 0: + case 1: + ui->adrBox->setRange(0, 84); + ui->adrBox->setValue(0); + break; + case 2: + ui->adrBox->setRange(85, 170); + ui->adrBox->setValue(85); + break; + } +} + +void MultipleSettings::on_boardBox_currentIndexChanged(int index) +{ + switch (index) { + case 3: + ui->countBox->setRange(1, 65-ui->adrBox->value()+85*ui->regTypeBox->currentIndex()/2); + break; + default: + ui->countBox->setRange(1, 85-ui->adrBox->value()+85*ui->regTypeBox->currentIndex()/2); + + } +} + +void MultipleSettings::on_adrBox_valueChanged(int arg1) +{ + ui->countBox->setRange(1, ((85-(20*(ui->boardBox->currentIndex()/3)))*(1+(ui->regTypeBox->currentIndex()/2))-arg1)); +} diff --git a/M3KTE_TERM/multiplesettings.h b/M3KTE_TERM/multiplesettings.h new file mode 100644 index 0000000..e20076a --- /dev/null +++ b/M3KTE_TERM/multiplesettings.h @@ -0,0 +1,45 @@ +#ifndef MULTIPLESETTINGS_H +#define MULTIPLESETTINGS_H + +#include +#include + +namespace Ui { +class MultipleSettings; +} + +class MultipleSettings : public QDialog +{ + Q_OBJECT + +public: + explicit MultipleSettings(QWidget *parent = nullptr); + ~MultipleSettings(); + quint16 getNewValue() {return newValue;} + unsigned getStartAdr() {return startAdr;} + unsigned getCountReg() {return countReg;} + short getTypeReg() {return typeReg;} + short getBoardId() {return boardId;} +signals: + void write(); + void writeAndSend(); + +private slots: + void on_buttonBox_clicked(QAbstractButton *button); + + void on_regTypeBox_currentIndexChanged(int index); + + void on_boardBox_currentIndexChanged(int index); + + void on_adrBox_valueChanged(int arg1); + +private: + Ui::MultipleSettings *ui; + quint16 newValue = 0; + unsigned startAdr; + unsigned countReg; + short typeReg; + short boardId; +}; + +#endif // MULTIPLESETTINGS_H diff --git a/M3KTE_TERM/multiplesettings.ui b/M3KTE_TERM/multiplesettings.ui new file mode 100644 index 0000000..1ad4858 --- /dev/null +++ b/M3KTE_TERM/multiplesettings.ui @@ -0,0 +1,198 @@ + + + MultipleSettings + + + + 0 + 0 + 381 + 128 + + + + Dialog + + + + + + Уставка + + + + + + Кол-во + + + + + + + Стартовый + + + + + + + Плата + + + + + + + + 0 + 0 + + + + 84 + + + + + + + + 0 + 0 + + + + + 40 + 16777215 + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + + + + + 0 + 0 + + + + 1 + + + 85 + + + + + + + + + + Значение (HEX) + + + + + + + + Coil + + + + + Warning + + + + + Accident + + + + + + + + Тип Регистра + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::SaveAll + + + false + + + + + + + + + buttonBox + accepted() + MultipleSettings + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + MultipleSettings + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/M3KTE_TERM/settingsdialog.cpp b/M3KTE_TERM/settingsdialog.cpp index 7911af6..59b8c17 100644 --- a/M3KTE_TERM/settingsdialog.cpp +++ b/M3KTE_TERM/settingsdialog.cpp @@ -45,8 +45,8 @@ SettingsDialog::Settings SettingsDialog::settings() const int SettingsDialog::UpdateBaud(int baud) { - ui->baudCombo->setCurrentText(QString::number(baud, 10)); - return (m_settings.baud = baud); + ui->baudCombo->setCurrentIndex(baud); + return (m_settings.baud = ui->baudCombo->currentText().toInt()); } int SettingsDialog::UpdateParity(int parity) @@ -60,3 +60,13 @@ int SettingsDialog::UpdateParity(int parity) return (m_settings.parity = parity); } } + +int SettingsDialog::curBaud() +{ + return ui->baudCombo->currentIndex(); +} + +int SettingsDialog::curParity() +{ + return ui->parityCombo->currentIndex(); +} diff --git a/M3KTE_TERM/settingsdialog.h b/M3KTE_TERM/settingsdialog.h index 5ab4834..e658a6e 100644 --- a/M3KTE_TERM/settingsdialog.h +++ b/M3KTE_TERM/settingsdialog.h @@ -23,8 +23,8 @@ public: int baud = 115200; int dataBits = QSerialPort::Data8; int stopBits = QSerialPort::OneStop; - int responseTime = 1000; - int numberOfRetries = 3; + int responseTime = 500; + int numberOfRetries = 0; }; explicit SettingsDialog(QWidget *parent = nullptr); @@ -35,7 +35,8 @@ public: int UpdateBaud(int baud); int UpdateParity(int parity); - + int curBaud(); + int curParity(); private: Settings m_settings; Ui::SettingsDialog *ui; diff --git a/M3KTE_TERM/settingsdialog.ui b/M3KTE_TERM/settingsdialog.ui index 736499a..a01262a 100644 --- a/M3KTE_TERM/settingsdialog.ui +++ b/M3KTE_TERM/settingsdialog.ui @@ -35,8 +35,11 @@ + + false + - 3 + 0 @@ -112,28 +115,18 @@ - 8 + 7 - - - 1200 - - - - - 2400 - - - - - 4800 - - 9600 + + + 14400 + + 19200 @@ -149,6 +142,11 @@ 38400 + + + 56000 + + 57600 diff --git a/M3KTE_TERM/writeregistermodel.cpp b/M3KTE_TERM/writeregistermodel.cpp index 207710a..a5bd320 100644 --- a/M3KTE_TERM/writeregistermodel.cpp +++ b/M3KTE_TERM/writeregistermodel.cpp @@ -2,11 +2,11 @@ #include "writeregistermodel.h" -enum { NumColumn = 0, NameColumn = 1, CoilsColumn = 2, HoldingColumn = 3, ColumnCount = 4}; +enum { NumColumn = 0, NameColumn = 1, CoilsColumn = 2, HoldingColumn = 3, ColumnCount = 5, CurrentUColumn = 4}; WriteRegisterModel::WriteRegisterModel(QObject *parent, int _tmpRC, bool _isHR) : QAbstractTableModel(parent), - m_coils(RowCount=_tmpRC, false), m_holdingRegisters(RowCount=_tmpRC, 0u) + m_coils(RowCount=_tmpRC, false), m_holdingRegisters(RowCount=_tmpRC, 0u), m_currentU(RowCount=_tmpRC) { isHR=_isHR; } @@ -41,6 +41,9 @@ QVariant WriteRegisterModel::data(const QModelIndex &index, int role) const if (index.column() == HoldingColumn && role == Qt::DisplayRole) // holding registers return QString("0x%1").arg(QString::number(m_holdingRegisters.at(index.row()), 16)); + if(index.column() == CurrentUColumn && role == Qt::DisplayRole) + return QString("%1 В").arg(QString::number((double)((double)m_currentU.at(index.row())/(double)1000))); + return QVariant(); } @@ -60,6 +63,8 @@ QVariant WriteRegisterModel::headerData(int section, Qt::Orientation orientation return QStringLiteral("Coils"); case HoldingColumn: return QStringLiteral("Holding Registers"); + case CurrentUColumn: + return QStringLiteral("Current U"); default: break; } @@ -133,3 +138,11 @@ uint WriteRegisterModel::get_holreg(const QModelIndex &index) { return m_holdingRegisters.at(index.row()); } + +bool WriteRegisterModel::set_currentU(unsigned _tmpU, unsigned index) +{ + m_currentU[index] = _tmpU; + if(isHR) + m_currentU[index + m_number] = _tmpU; + return true; +} diff --git a/M3KTE_TERM/writeregistermodel.h b/M3KTE_TERM/writeregistermodel.h index e666155..867c325 100644 --- a/M3KTE_TERM/writeregistermodel.h +++ b/M3KTE_TERM/writeregistermodel.h @@ -24,6 +24,8 @@ public: Qt::ItemFlags flags(const QModelIndex &index) const override; + bool set_currentU(unsigned _tmpU, unsigned index); + public slots: void setStartAddress(int address); void setNumberOfValues(const QString &number); @@ -36,5 +38,6 @@ public: int m_address = 0; QBitArray m_coils; QVector m_holdingRegisters; + QVector m_currentU; }; #endif // WRITEREGISTERMODEL_H