⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsomaindlg.cpp

📁 最新的USB示波器源码?可直接编译生成可执行程序,需要硬件支持
💻 CPP
📖 第 1 页 / 共 5 页
字号:
       ord[1]=ATT_10;   //衰减10dB
       ord[3]=AD8337_2DB_H_CH2;
	    ord[4]=AD8337_2DB_L_CH2;
		ord[5]=PWM2_2DB;
		break;

	case 7:   //200mV/div
       ord[1]=ATT_10; //衰减1dB
        ord[3]=AD8337_5DB_H_CH2;
	    ord[4]=AD8337_5DB_L_CH2;
		ord[5]=PWM2_5DB;
		break;

	case 8:  //100mV/div
       ord[1]=ATT_1;//衰减1dB
	    ord[3]=AD8337_1DB_H_CH2;
	    ord[4]=AD8337_1DB_L_CH2;
		ord[5]=PWM2_1DB;

		break;
	case 9:   //50mV/div
       ord[1]=ATT_1;//衰减1dB
	    ord[3]=AD8337_2DB_H_CH2;
	    ord[4]=AD8337_2DB_L_CH2;
		ord[5]=PWM2_2DB;
		break;
	
	case 10:  //20mV/div
         ord[1]=ATT_1; //衰减1dB
	     ord[3]=AD8337_5DB_H_CH2;
	     ord[4]=AD8337_5DB_L_CH2;
		 ord[5]=PWM2_5DB;

		break;	
	case 11: //10mV/div
		ord[1]=ATT_1; //衰减1dB
        ord[3]=AD8337_10DB_H_CH2;
	    ord[4]=AD8337_10DB_L_CH2;
		ord[5]=PWM2_10DB;
		break;

	case 12:  //5mV/div
		ord[1]=ATT_1; //衰减1dB
	    ord[3]=AD8337_20DB_H_CH2;
	    ord[4]=AD8337_20DB_L_CH2;
		ord[5]=PWM2_20DB;
		break;

	}

   	ord[1]|=coupline_reg;
    SendCommandToUSB(VR_USRCMD);
    Sleep(50);

	ord[0]=CMD_I;
	ord[1]=0x00;
	ord[1]|=coupline_reg;
    SendCommandToUSB(VR_USRCMD);
    m_displayWnd.ReDrawSCreen();



	m_displayWnd.ReDrawSCreen();
}

void CDSOMainDlg::OnChaX1() 
{
   m_cha_1x_but.SetCheck(1);
   m_cha_10x_but.SetCheck(0);
   m_cha_100x_but.SetCheck(0);
   cha_param.probe =1;
   m_displayWnd.ReDrawSCreen();
   InvalidateRect (&cha_dbCtrl_rect);

   //m_chbdbCtl.SetDisString ("500V 200 100 50 20 10 5 2 1V 500mV 200 100 50mV");

   m_chadbCtl.SetDisString ("50V 20 10 5 2 1 500mV 200 100 50 20 10 5mV");
   
  
}

void CDSOMainDlg::OnCha10x() 
{
   m_cha_1x_but.SetCheck(0);
   m_cha_10x_but.SetCheck(1);
   m_cha_100x_but.SetCheck(0);	
   cha_param.probe =10;
   m_displayWnd.ReDrawSCreen();


   m_chadbCtl.SetDisString ("500V 200 100 50 20 10 5 2 1V 500mV 200 100 50mV");
   InvalidateRect (&cha_dbCtrl_rect);
}

void CDSOMainDlg::OnCha100x() 
{
   m_cha_1x_but.SetCheck(0);
   m_cha_10x_but.SetCheck(0);
   m_cha_100x_but.SetCheck(1);
   cha_param.probe =100;
   m_displayWnd.ReDrawSCreen();

   m_chadbCtl.SetDisString ("5KV 2 1KV 500V 200 100 50 20 10 5 2 1V 500mV");

     InvalidateRect (&cha_dbCtrl_rect);
}

void CDSOMainDlg::OnChb1x() 
{
   m_chb_1x_but.SetCheck(1);
   m_chb_10x_but.SetCheck(0);
   m_chb_100x_but.SetCheck(0);	
   chb_param.probe =1;
   m_displayWnd.ReDrawSCreen();

   m_chbdbCtl.SetDisString ("50V 20 10 5 2 1 500mV 200 100 50 20 10 5mV");
   InvalidateRect (&chb_dbCtrl_rect);
}

void CDSOMainDlg::OnChb10x() 
{  m_chb_1x_but.SetCheck(0);
   m_chb_10x_but.SetCheck(1);
   m_chb_100x_but.SetCheck(0);
   chb_param.probe =10;
   m_displayWnd.ReDrawSCreen();
   m_chbdbCtl.SetDisString ("500V 200 100 50 20 10 5 2 1V 500mV 200 100 50mV");
   InvalidateRect (&chb_dbCtrl_rect);
}

void CDSOMainDlg::OnChb100x() 
{
	 m_chb_1x_but.SetCheck(0);
	 m_chb_10x_but.SetCheck(0);
	 m_chb_100x_but.SetCheck(1);
	 chb_param.probe =100;
     m_displayWnd.ReDrawSCreen();

	 m_chbdbCtl.SetDisString ("5KV 2 1KV 500V 200 100 50 20 10 5 2 1V 500mV");
	  
	   InvalidateRect (&chb_dbCtrl_rect);
}
//#define TRIGGER_EGDE        0x0c
//#define TRIGGER_VIDEO       0x0d
//#define TRIGGER_PLUS        0x0e

void CDSOMainDlg::OnTrigType() 
{   DWORD t;
    trigger.method =m_trig_type_but.GetSelectSite();
	ord[0]='C';
	WORD i;
	if(trigger.method==0)
	{  if(trigger.source==0||trigger.source==1)
		{	ord[1]=TRIG_SEL_INT;
		 	SendCommandToUSB(VR_USRCMD);
		}
	   	m_video_type.ShowWindow(SW_HIDE);
		m_level_ctl.ShowWindow(SW_SHOW);
      	m_lineNr_ctl.ShowWindow(SW_HIDE);
		m_alllines_ctl.ShowWindow(SW_HIDE);
		m_field2_ctl.ShowWindow(SW_HIDE);
		m_field1_ctl.ShowWindow(SW_HIDE);
		m_secam_ctl.ShowWindow(SW_HIDE);
		m_ntsc_ctl.ShowWindow(SW_HIDE);
		m_pal_ctl.ShowWindow(SW_HIDE);
		m_linesSel_ctl.ShowWindow(SW_HIDE);
	
		m_lines_ctl.ShowWindow(SW_HIDE);
		m_video_trg_ctl.ShowWindow(SW_HIDE);
		m_tvmode_ctl.ShowWindow(SW_HIDE);
	    m_trig_level_ctrl.ShowWindow(SW_SHOW);

		m_pluse_time_down_but.ShowWindow(SW_HIDE);
		m_pluse_time_up_but.ShowWindow(SW_HIDE);
		m_pluse_time_setup_but.ShowWindow(SW_HIDE);
		m_pluse_mes_ctl.ShowWindow(SW_HIDE);
   

	}
	else
	
		if(trigger.method==1)
	{   
		ord[1]=TRIG_SEL_VIDEO;
       	SendCommandToUSB(VR_USRCMD);
	    i=1024-video_lines;
	
       	ord[0]=CMD_VIDEO_TRG;
		ord[1]=BYTE((i>>8)&0x03);
		ord[2]=(BYTE)(i&0x00ff);
		SendCommandToUSB(VR_USRCMD);

        m_level_ctl.ShowWindow(SW_HIDE);
		m_video_type.ShowWindow(SW_SHOW);
        m_video_type.SetWindowText("Video Type");

	
    	
		m_lineNr_ctl.ShowWindow(SW_SHOW);
        m_lineNr_ctl.SetWindowText("Line NR");

		m_alllines_ctl.ShowWindow(SW_SHOW);
		m_alllines_ctl.SetWindowText("All lines");

		m_field2_ctl.ShowWindow(SW_SHOW);
        m_field2_ctl.SetWindowText("Field2");

		m_field1_ctl.ShowWindow(SW_SHOW);
		 m_field1_ctl.SetWindowText("Field1");

		m_secam_ctl.ShowWindow(SW_SHOW);

		m_ntsc_ctl.ShowWindow(SW_SHOW);
		
		m_pal_ctl.ShowWindow(SW_SHOW);
		
		m_linesSel_ctl.ShowWindow(SW_SHOW);
	
		m_lines_ctl.ShowWindow(SW_SHOW);
		
		m_video_trg_ctl.ShowWindow(SW_SHOW);
		
		m_tvmode_ctl.ShowWindow(SW_SHOW);
	   
		m_trig_level_ctrl.ShowWindow(SW_HIDE);

        m_pluse_time_down_but.ShowWindow(SW_HIDE);
		m_pluse_time_up_but.ShowWindow(SW_HIDE);
		m_pluse_time_setup_but.ShowWindow(SW_HIDE);
		m_pluse_mes_ctl.ShowWindow(SW_HIDE);

	}
	else

	if(trigger.method==2)
	{
        ord[1]=TRG_SEL_PLUS;
       	SendCommandToUSB(VR_USRCMD);

		ord[0]=CMD_PLUSE_TRG;
	     
		t=pluse_time/20;


		ord[1]=(BYTE)((t>>24)&0x000000ff);
		ord[2]=(BYTE)((t>>16)&0x000000ff);
		ord[3]=(BYTE)((t>>8)&0x000000ff);
		ord[4]=(BYTE)(t&0x000000ff);

        SendCommandToUSB(VR_USRCMD);

    
		m_level_ctl.ShowWindow(SW_HIDE);
	
		m_video_type.ShowWindow(SW_SHOW);
	    m_video_type.SetWindowText("Plus With");

	
    	
		m_lineNr_ctl.ShowWindow(SW_SHOW);
        m_lineNr_ctl.SetWindowText(" =");

		m_alllines_ctl.ShowWindow(SW_SHOW);
		m_alllines_ctl.SetWindowText(" ≠");

		m_field2_ctl.ShowWindow(SW_SHOW);
        m_field2_ctl.SetWindowText(" >");

		m_field1_ctl.ShowWindow(SW_SHOW);
		 m_field1_ctl.SetWindowText(" <");


		m_secam_ctl.ShowWindow(SW_HIDE);
		m_ntsc_ctl.ShowWindow(SW_HIDE);
		m_pal_ctl.ShowWindow(SW_HIDE);

		m_linesSel_ctl.ShowWindow(SW_HIDE);
	//	m_plus_time.ShowWindow(SW_SHOW);
	
		m_lines_ctl.ShowWindow(SW_HIDE);
		m_video_trg_ctl.ShowWindow(SW_SHOW);
		m_tvmode_ctl.ShowWindow(SW_HIDE);

	    m_trig_level_ctrl.ShowWindow(SW_HIDE);
	
		m_pluse_time_down_but.ShowWindow(SW_SHOW);
		m_pluse_time_up_but.ShowWindow(SW_SHOW);
		m_pluse_time_setup_but.ShowWindow(SW_SHOW);
		m_pluse_mes_ctl.ShowWindow(SW_SHOW);


	}
    CRect rect(870,250,910,320);
	InvalidateRect(&rect,true);
	
	m_displayWnd.ReDrawSCreen();

}


  
void CDSOMainDlg::OnChaDw() 
{
	  isChaDW=!isChaDW;
	  ord[0]='C';

   //   display.freq_on_ch1=isChaDW;
	  if(isChaDW){cha_param.bw_limit =true;
	   ord[1]=CHA_BW_ISLIMIT;
	   m_cha_dw_but.SetIcon(IDI_DW_G);
	  }
	  else{cha_param.bw_limit =false;
          ord[1]=CHA_BW_NOLIMIT;
		  m_cha_dw_but.SetIcon(IDI_DW_B);
	  }
	  //   SendCommandToUSB(VR_USRCMD);
	   m_displayWnd.ReDrawSCreen();	
	  
   // m_displayWnd.SetCha_ON_OFF(isChaON);	
}

void CDSOMainDlg::OnChbDw() 
{
	 isChbDW=!isChbDW;
	  ord[0]='C';
	 if(isChbDW)
	 {chb_param.bw_limit =true;
	 ord[1]=CHB_BW_ISLIMIT;
		 m_chb_dw_but.SetIcon(IDI_DW_Y);
	 }
	 else
	 {chb_param.bw_limit =false;
	  ord[1]=CHB_BW_NOLIMIT;
		  m_chb_dw_but.SetIcon(IDI_DW_B);
	 }
	  SendCommandToUSB(VR_USRCMD);
	 m_displayWnd.ReDrawSCreen();	

}

void CDSOMainDlg::OnChaInv() 
{
	isChaInv=!isChaInv;
	  if(isChaInv)
		 { cha_param.reversal=true; 
		  m_cha_inv_but.SetIcon(IDI_INV_G);
	  }
	  else
	  {  cha_param.reversal=false; 
		  m_cha_inv_but.SetIcon(IDI_INV_B);
	  }
		
	  m_displayWnd.ReDrawSCreen();	

}

void CDSOMainDlg::OnChbInv() 
{
	isChbInv=!isChbInv;
	if(isChbInv)
	{chb_param.reversal=true;
		  m_chb_inv_but.SetIcon(IDI_INV_Y);
	}
	else{chb_param.reversal=false;
		  m_chb_inv_but.SetIcon(IDI_INV_B);	
	}
	m_displayWnd.ReDrawSCreen();	

}


/* AD5314 控制命令描述 10Bits SPI D/A Vout=Vref X D /1024
 * BIT15                                                  BIT0
 * A1   A0  PD  LDAC  D9  D8  D7  D6 D5 D4 D3 D2 D1 D0  X  X 
 * MSB               |<--------DATA BITS-------------------->| LSB
 * A1  A0  DAC Address                        
 * 0   0   DAC A Trig level
 * 0   1   DAC B CHA  REF
 * 1   0   DAC C CHB  REF 
 * 1   1   DAC D AD8001 IN+ vlot level offset
 * PD =0 :所有DAC 低功耗模式  DAC output a high impedance 1: 正常操作
 * LDAC =0 :所有DAC寄存器同时更新   1 : 仅被选中的DAC被更新
 * SPI Frist LSB  
    Q0 Q1 Q2  Q3  Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 
	A1 A0 PD LDAC D9 D8 D7 D6 D5 D4 D3  D2  D1  D0  X    X
	0  0  1   1   0  0  0  0  0  0  0   0   0   0   0    0
*/


void CDSOMainDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{

//  if(!(nSBCode==SB_LINEDOWN||nSBCode==SB_LINEUP||nSBCode==SB_THUMBPOSITION))return;

    int i;
 //   BYTE cmp_A,cmp_B;
	WORD dx;//dx1,dx3;
	CString mes;
	CSliderCtrl	*pSlider = (CSliderCtrl *)pScrollBar;
 
	if(pSlider == &m_trig_level_ctrl) 
	{
		i =255- pSlider->GetPos ();
		
        trigger.level=i;
		trigger.display =true;
       	trigger.disp_counter=0;

		if(trigger.source==0||trigger.source==1)
		{

         dx=(2300+((i-255)*1000)/255)*1024/3183;
         dx<<=2;
		 dx&=0x1fff;
         //dx1=0;
		 ///dx3=0;
         //dx1=dx;
		 //dx3=dx;
		 dx|=(PD|0x0000); //通道0
		 ord[0]='A';
         ord[1]=(BYTE)((dx>>8)&0x00ff);
		 ord[2]=(BYTE)(dx&0x00ff);
		
		 SendCommandToUSB(VR_USRCMD);

/*
		if(i==255)
		{cmp_A=255-20;
		 i=255-10;
		cmp_B=255;
		}
		else
		if(i==0)
		{  
			cmp_A=0;
			i=10;
			cmp_B=20;
		}
		else
		{
          cmp_A=i-10;
		  cmp_B=i+10;
  
		}
        */
		//vx=1000+((trigger.level )*400)/(DISHEIGHT/2);
	   	//dx=vx*1024/3300;
        //dx<<=2;
        //dx|=PD;//|0x8000;  //通道0

        //mes.Format("%d,%02x,%02x",i,cmp_A,cmp_B);
	    //m_mes_ctrl.SetWindowText(mes);
	    //ord[0]='M';
        //ord[1]=cmp_A;
	//	ord[2]=cmp_B;

		}
		else
			if(trigger.source==2) //Ext trigger
			{
      
        
         ord[0]='A';
         ord[1]=0x62;
		 ord[2]=0x8c;
        
			}
		
		SendCommandToUSB(VR_USRCMD);

		m_displayWnd.ReDrawSCreen();

	}else
		if(pSlider == &m_cha_offset_ctl)
		{
     	i =pSlider->GetPos ();
		
     
         dx=i;
         dx<<=2;
	//	 dx&=0x1fff;
         //dx1=0;
		 ///dx3=0;
         //dx1=dx;
		 //dx3=dx;
		 dx|=(PD|0x2000); //通道1

		 ord[0]='A';
         ord[1]=(BYTE)((dx>>8)&0x00ff);
		 ord[2]=(BYTE)(dx&0x00ff);
		 SendCommandToUSB(VR_USRCMD);


		}
		else
		{ if(pScrollBar->GetDlgCtrlID()==IDC_LINES_SEL)   

			{
			   video_lines=m_linesSel_ctl.GetPos();
		       i=1024-video_lines;
		       ord[0]=CMD_VIDEO_TRG;
	        	ord[1]=BYTE((i>>8)&0x03);
	        	ord[2]=(BYTE)(i&0x00ff);
	        	SendCommandToUSB(VR_USRCMD);
			//	SendCommandToUSB(VR_USRCMD);
		}




		}

	CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}

void CDSOMainDlg::OnTrigMode() 
{
   trigger.mode =m_trig_mode_but.GetSelectSite();
   m_displayWnd.ReDrawSCreen();
	ord[0]='C';
	switch( trigger.mode)
	{case 0:
	  ord[1]=TRIGGER_AUTO;
	  break;
	 case 1:
	  ord[1]=TRIGGER_NORMAL;
	  break;
	 case 2:
	  ord[1]=TRIGGER_SIGNLE;
	  break;
	}
	 SendCommandToUSB(VR_USRCMD);



}


void CDSOMainDlg::OnTrigSourceSelect() 
{
	trigger.source =m_TrigSource_but.GetSelectSite();
   // WORD dx;
	ord[0]='C';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -