📄 xhfsq.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 + -