Overhead::Overhead(QWidget *parent) : QDialog(parent), ui(new Ui::Overhead) { ui->setupUi(this); setAttribute( Qt::WA_DeleteOnClose ); // очищать память из кучи Overhead::setupOH(); ui->groupBoxEdit->hide(); ui->groupBoxCell->hide(); ui->groupBoxHackGet->hide(); ui->pushOHPureDel->hide(); ui->pushOHPrint->hide(); // INITS connect(ui->pushOHEdit, SIGNAL(clicked()), this, SLOT(EditParam())); // управление редактированием connect(ui->pushEditApply, SIGNAL(clicked()), this, SLOT(apply())); // применение параметров редактирования connect(ui->pushOHDel, SIGNAL(clicked()), this, SLOT(del())); connect(ui->pushOHCell, SIGNAL(clicked()), this, SLOT(cell())); // хак для динамического изменения окна connect(ui->pushOHEditHack, SIGNAL(clicked()), this, SLOT(edit_hack())); // тоже самое // коннекторы для удаления, редактирования, получения долга на товар connect(ui->pushOHReturnedYes, SIGNAL(clicked()), this, SLOT(isReturnedYes())); connect(ui->pushOHReturnedYes, SIGNAL(clicked()), this, SLOT(on_tableOH_clicked())); connect(ui->pushOHReturnedNo, SIGNAL(clicked()), this, SLOT(isReturnedNo())); connect(ui->pushOHReturnedNo, SIGNAL(clicked()), this, SLOT(on_tableOH_clicked())); connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(duty())); connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(on_tableOH_clicked())); // тест драйвера печати connect(ui->pushOHPrint, SIGNAL(clicked()), this, SLOT(printDialog())); }
// ������������ � ����� ��������������, ��������� ���������, ����������� � ������� ������� �� ����� ��������������, //���� ������� ��� ������� ������������ ������ �������� �������������� // param - �������� �������������� ( 0 - A, 1 - O, 2 - F, 3 - D), //���� ������� ��� ������� - ���, �� 0 - m, 1 - var(sigma) //============================================================================== void Switch_to_EditMode( int param ) { sParam *tempParam; sSignalParam *tmpSig; char spacestr[9]; memset( spacestr, 0x20, sizeof( spacestr ) ); tmpSig = &(Channel[CurChannel].SignalParam[Channel[CurChannel].CurSigForm]); //���� ������� ��� ������� - ��� if( ( Channel[CurChannel].CurSigForm == 4 ) || ( Channel[CurChannel].CurSigForm == 5 ) ) { // � ���� ������ ��� ��������� ��������� � �������������� if( param == 0 ) { param = 4; } else if( param == 1 ) { param = 5; } else // ������ ��� ��������� ���������� �������� ���� ������� { //�������������� ������� �������� ��������������, ��� �������� � �������� ��������� �� ��������������, //���� �� ���� ����������� ��� ��������� ��� ����������� ���������, ���� ������������ ���� ReDrawParam( &Channel[CurChannel].SignalParam[Channel[CurChannel].CurSigForm].Param[CurEditParam] ); //���������� ��������� ������ for( int i = 0; i < 6; i++ ) { StateButton[i] = 0; } //��������� ������ blink_control( 0 ); return; } //����� ���� � ���������� ��������������, �������������� ������� ������ tempParam = &(tmpSig->Param[param]); } else { //����� ���� � ���������� ��������������, �������������� ������� ������ tempParam = &(tmpSig->Param[param]); // ������ ��� ��������� ���������� �������� ���� ������� if( tempParam->isAvailable != 1 ) { //�������������� ������� �������� ��������������, ��� �������� � �������� ��������� �� ��������������, //���� �� ���� ����������� ��� ��������� ��� ����������� ���������, ���� ������������ ���� ReDrawParam( &Channel[CurChannel].SignalParam[Channel[CurChannel].CurSigForm].Param[CurEditParam] ); //���������� ��������� ������ for(int i = 0; i < 6; i++) { StateButton[i] = 0; } //��������� ������ blink_control(0); return; } } // ���� ����� ������, �� ������� �������� �������� � ��������������, ����� ��� ������� �������, // ���� �� �������, ���������� ��� � ��������� ������ �� ����������, � �������� �������� �������������� // ����� ����� ������� � ����� �������������� //��������� � ����� �������������� EditMode = 1; //���� �������� �������������� �� �����, �� ����� ������� ��� �������, ���������� ��� �� LCD //� ������� ��������, � ������� ������� ������� LCD, ��������� if( tempParam->isVisible != 1 ) { tempParam->isVisible = 1; //������ ��������� ��������, � ������� ������� �������� ����� ������� �� LCD tmpSig->Param[tempParam->index_together].isVisible = 0; //���������� ������������� �������� ReDrawParam( tempParam ); } //���������� ��������� ������, ����� ������� for( int i = 0; i < 6; i++ ) { if(i != param) { StateButton[i] = 0; } } //��������� ���������/��������� if( StateButton[param] == 0 ) { // ������ ����������� �������� �� LCD ReDrawParam( &(tmpSig->Param[CurEditParam]) ); StateButton[param] = 1; // �������������� ���������� ��� state machine �������������� ����������, // �������� ���������/��������� CurEditParam = param; PrevValue = tempParam->cur; } else if( StateButton[param] == 1 ) //��������� ����� ���� (now it apply-state) { StateButton[param] = 0; // applying changes EditParam( 9 ); return; } else if(StateButton[param] == 2); //�������� ������ blink_control( 1 ); //��������� ������ �� ������� �������������� shift_blink( tempParam->bg_pos_x, tempParam->bg_pos_y ); }
//menu state machine // ButNum - ����� ������ (0-7, 0-11) // EventType - ��� ������� (1 - ButtonOn, 2 - ButtonPress) // isKeyPad - ��� ����������(1 - KeyPad, 0 - MatrixPad) //============================================================================== void MenuStateMach( const s_pol_button* message ) { int ButNum = 0; // if message is double click if( message->is_double_click ) ButNum = (int)( message->prev_but_num << 12 ) | (int)( message->num << 8 ); else ButNum = message->num; // blocking buttons, except '+' ans '-', in measuring mode if( ( is_meas_mode ) && ( ButNum != 6 ) && ( ButNum != 7 ) ) { return; } sSignalParam tmpSig; s_pol_button temp_1; // ��������� ������� KeyPad switch( ButNum ) { case 0: //������ "Channel select" { //������� �� ������ �������������� EditMode = 0; //�������������� ������� �������� ��������������, ��� �������� � �������� ��������� �� ��������������, //���� �� ���� ����������� ��� ��������� ��� ����������� ���������, ���� ������������ ���� ReDrawParam( &Channel[CurChannel].SignalParam[Channel[CurChannel].CurSigForm].Param[CurEditParam] ); //���������� ��������� ������ for( int i = 0; i < 6; i++ ) { StateButton[i] = 0; } //��������� ������ blink_control(0); //����������, �� LCD, ������� ����� if( CurChannel == 0 ) //Channel 1 { CurChannel = 1; } else if( CurChannel == 1 )//Channel 2 { CurChannel = 0; } ReDrawZeroRow(); } break; case 1: //������ "Signal Form" { //������� �� ������ �������������� EditMode = 0; //���������� ��������� ������ for( int i = 0; i < 6; i++ ) { StateButton[i] = 0; } //��������� ������ blink_control( 0 ); //"����������" ������� ����� �������� Channel[CurChannel].CurSigForm++; if( Channel[CurChannel].CurSigForm >= 6 ) { Channel[CurChannel].CurSigForm = 0; } tmpSig = Channel[CurChannel].SignalParam[Channel[CurChannel].CurSigForm]; //����������, �� LCD, ��� �������� ������� �������� ������ lcd_write( " ", Channel[CurChannel].pos_x, tmpSig.name_pos_y ); lcd_write( tmpSig.pname, Channel[CurChannel].pos_x, tmpSig.name_pos_y ); //����������, �� LCD, �������, � ������ ������, ��������� �������� ������� �������� ������ for( int i = 0; i < 6; i++ ) { ReDrawParam( &(tmpSig.Param[i]) ); } preInitDAC( &(Channel[CurChannel]), CurChannel ); } break; case 2: //������ "A/sigma" { //������� �� ������ �������������� EditMode = 0; //��������� � ����� �������������� � ��������� ������ Switch_to_EditMode( 0 ); } break; case 3: //������ "O/m" { //������� �� ������ �������������� EditMode = 0; //��������� � ����� �������������� � ��������� ������ Switch_to_EditMode( 1 ); } break; case 4: //������ "F" { //������� �� ������ �������������� EditMode = 0; //��������� � ����� �������������� � ��������� ������ Switch_to_EditMode( 2 ); } break; case 5: //������ "D" { //������� �� ������ �������������� EditMode = 0; //��������� � ����� �������������� � ��������� ������ Switch_to_EditMode( 3 ); } break; case 6: //������ "+" { if( EditMode == 1 ) { EditParam( 12 ); } else { if( is_meas_mode == 0 ) { // switch to measuring mode is_meas_mode = 1; // Unlocking sending message from DMA1 Channel 1 ISR to Calc thread lock_send_message_to_calc_thread = 0; } else { // switch to generation mode is_meas_mode = 0; // locking sending message from DMA1 Channel 1 ISR to Calc thread lock_send_message_to_calc_thread = 1; }//else ReDrawZeroRow(); re_draw_body(); }// else } break; case 7: //������ "-" { if( EditMode == 1 ) { EditParam( 13 ); } else { // sends a message SD_EVENT to sd_thread sd_control(); } } break; case CS_SF: // Channel select + Signal Form { temp_1.is_double_click = 0; temp_1.num = 0; // Channel select // emulate 'Channel select' button pressed event // to switch back to channel, on which 'Channel select + Signal Form' has been occurred MenuStateMach( &temp_1 ); sweep_freq_control( CurChannel ); } break; default: break; }//switch(ButNum) }