Пример #1
0
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()));
}
Пример #2
0
// ������������ � ����� ��������������, ��������� ���������, ����������� � ������� ������� �� ����� ��������������,
//���� ������� ��� ������� ������������ ������ �������� ��������������
// 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 ); 
}
Пример #3
0
//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) 
}