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

📄 xhfsq.c

📁 cvi编程举例
💻 C
字号:
#include <ansi_c.h>
#include <analysis.h>
#include <cvirte.h>		
#include <userint.h>
#include "XHFSQ.h"

static int panelHandle;

int main (int argc, char *argv[])
{
	if (InitCVIRTE (0, argv, 0) == 0)
		return -1;	/* out of memory */
	if ((panelHandle = LoadPanel (0, "XHFSQ.uir", PANEL)) < 0)
		return -1;
	DisplayPanel (panelHandle);
	RunUserInterface ();
	DiscardPanel (panelHandle);
	return 0;
}

int CVICALLBACK ExitP (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
			QuitUserInterface (0);
			break;
	}
	return 0;
}

int CVICALLBACK Send (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	int  BX,ZQS; 
	double  PL,FZ;   
	double phase;
	double *SinWave=NULL;
	double *TriWave=NULL; 
	int BL;
	double  ImpWave[2000];
	
	
	switch (event)
	{
		case EVENT_COMMIT:
			GetCtrlVal (panelHandle, PANEL_RING, &BX);
			GetCtrlVal (panelHandle, PANEL_NUM_FRE, &PL);
			GetCtrlVal (panelHandle, PANEL_NUM_FZ, &FZ);
			GetCtrlVal (panelHandle, PANEL_NUM_ZQS, &ZQS);
			BL=1000/PL*ZQS;
			
			  
			
			if (BX==1)
			{
				if (SinWave!=NULL)  free(SinWave); 
				SinWave=malloc(BL*sizeof(double)); 
				SineWave (BL, FZ, PL*0.001, &phase, SinWave);
				
				
				DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, VAL_IMMEDIATE_DRAW);   
				PlotY (panelHandle, PANEL_GRAPH, SinWave, BL, VAL_DOUBLE, VAL_THIN_LINE,
					   VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_BLUE);
			}
			else if (BX==2)
			{
				
				if (TriWave!=NULL)  free(TriWave);
				TriWave=malloc(BL*sizeof(double));   
				//TriangleWave (BL, FZ, PL*0.001, &phase, TriWave);
				SquareWave (BL, FZ, PL*0.001, &phase, 50, TriWave);

				
				DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, VAL_IMMEDIATE_DRAW);   
				PlotY (panelHandle, PANEL_GRAPH, TriWave, BL, VAL_DOUBLE, VAL_THIN_LINE,
					   VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_BLUE);
			}

			else if (BX==3)
			{
				
				if (TriWave!=NULL)  free(TriWave);
				TriWave=malloc(BL*sizeof(double));   
				TriangleWave (BL, FZ, PL*0.001, &phase, TriWave);
				
				DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, VAL_IMMEDIATE_DRAW);   
				PlotY (panelHandle, PANEL_GRAPH, TriWave, BL, VAL_DOUBLE, VAL_THIN_LINE,
					   VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_BLUE);
			}
			else if (BX==4)
			{
  
				Impulse (2000, 6.0, 900, ImpWave);
				Pulse (2000, 5.0, 900, 50, ImpWave);
				
			
				DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, VAL_IMMEDIATE_DRAW);   
				PlotY (panelHandle, PANEL_GRAPH, ImpWave, 2000, VAL_DOUBLE, VAL_THIN_LINE,
					   VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_BLUE);
			}			
			
			break;
	}
	return 0;
}

⌨️ 快捷键说明

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