?? sample11.c
字號:
#include <utility.h>
#include <easyio.h>
#include <cvirte.h> /* Needed if linking in external compiler; harmless otherwise */
#include <userint.h>
#include "sample11.h"
#define MAX_CH_NUM 4
#define SCAN_NUM 100
static int panelHandle;
unsigned long numChannels;
unsigned long taskID;
short device;
char channelString[100];
double waveform[MAX_CH_NUM*SCAN_NUM];
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1;
if ((panelHandle = LoadPanel (0, "sample11.uir", PANEL)) < 0)
return -1;
DisableBreakOnLibraryErrors();
DisplayPanel (panelHandle);
RunUserInterface ();
EnableBreakOnLibraryErrors();
return 0;
}
int CVICALLBACK TimerCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int i;
unsigned long scanBacklog;
switch (event)
{
case EVENT_TIMER_TICK:
//獲取已采集的數(shù)據(jù)長度
AICheckAcquisition (taskID, &scanBacklog);
//檢查采集是否完畢
if (scanBacklog >= SCAN_NUM)
{
//讀取數(shù)據(jù)
AIReadAcquisition (taskID, SCAN_NUM, LATEST_MODE,
&scanBacklog, GROUP_BY_CHANNEL, waveform);
//刪除控件GRAPH上的所有曲線
DeleteGraphPlot (panel, PANEL_GRAPH, -1, VAL_DELAYED_DRAW);
//作曲線圖
for (i=0; i<numChannels; i++)
PlotY (panel, PANEL_GRAPH, &waveform[i*SCAN_NUM], SCAN_NUM,
VAL_DOUBLE, VAL_THIN_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1,
VAL_GREEN);
//設(shè)置控件SAMPLE、DEVICE、CHANNEL有效
SetCtrlAttribute (panelHandle, PANEL_SAMPLE, ATTR_DIMMED, 0);
SetCtrlAttribute (panelHandle, PANEL_DEVICE, ATTR_DIMMED, 0);
SetCtrlAttribute (panelHandle, PANEL_CHANNEL, ATTR_DIMMED, 0);
//設(shè)置TIMER控件無效
SetCtrlAttribute (panel, control, ATTR_ENABLED, 0);
}
break;
}
return 0;
}
int CVICALLBACK SampleCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
//獲取控件DEVICE和CHANNEL的值
GetCtrlVal (panel, PANEL_DEVICE, &device);
GetCtrlVal (panel, PANEL_CHANNEL, channelString);
//獲取采樣通道數(shù)
GetNumChannels (device, channelString, ANALOG_INPUT,
&numChannels);
//開始采樣
AIStartAcquisition (device, channelString, SCAN_NUM*numChannels, 2000,
5.0, -5.0, 0, &taskID);
//設(shè)置控件SAMPLE、DEVICE、CHANNEL無效
SetCtrlAttribute (panelHandle, PANEL_SAMPLE, ATTR_DIMMED, 1);
SetCtrlAttribute (panelHandle, PANEL_DEVICE, ATTR_DIMMED, 1);
SetCtrlAttribute (panelHandle, PANEL_CHANNEL, ATTR_DIMMED, 1);
//設(shè)置TIMER控件有效
SetCtrlAttribute (panelHandle, PANEL_TIMER, ATTR_ENABLED, 1);
break;
}
return 0;
}
int CVICALLBACK PanelCallback (int panel, int event, void *callbackData,
int eventData1, int eventData2)
{
switch (event)
{
case EVENT_CLOSE:
QuitUserInterface (0);
break;
}
return 0;
}
int CVICALLBACK QuitCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
QuitUserInterface (0);
break;
}
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -