LabWindows图表显示

效果如图

 

#include <ansi_c.h>
#include <cvirte.h>		
#include <userint.h>
#include "plotTrip.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, "plotTrip.uir", PANEL)) < 0)
		return -1;
	DisplayPanel (panelHandle);
	
	
	/*
	SetCtrlAttribute(panelHandle,PANEL_STRIPCHART,ATTR_SCROLL_MODE,VAL_CONTINUOUS);
	
	SetCtrlAttribute(panelHandle,PANEL_STRIPCHART,ATTR_POINTS_PER_SCREEN,100); //设置每屏数据显示的数目
    SetCtrlAttribute (panelHandle, PANEL_STRIPCHART, ATTR_SCROLL_MODE, VAL_BLOCK); //设置Strip Chart显示模式
    SetCtrlAttribute (panelHandle, PANEL_STRIPCHART, ATTR_NUM_TRACES, 2);//设置显示的波形数目
    SetTraceAttribute (panelHandle, PANEL_STRIPCHART, 1, ATTR_TRACE_COLOR, VAL_RED);//设置波形颜色
    SetTraceAttribute (panelHandle, PANEL_STRIPCHART, 2, ATTR_TRACE_COLOR, VAL_GREEN);
    SetTraceAttribute (panelHandle, PANEL_STRIPCHART, 1, ATTR_TRACE_VISIBLE, 1);//设置波形是否可见
    SetTraceAttribute (panelHandle, PANEL_STRIPCHART, 2, ATTR_TRACE_VISIBLE, 1);
    SetTraceAttribute (panelHandle, PANEL_STRIPCHART, 1, ATTR_TRACE_LG_VISIBLE, 1);//设置波形说明是否可见
    SetTraceAttribute (panelHandle, PANEL_STRIPCHART, 2, ATTR_TRACE_LG_VISIBLE, 1);
    SetTraceAttributeEx (panelHandle, PANEL_STRIPCHART, 1, ATTR_TRACE_LG_TEXT, "Device 1");
    SetTraceAttributeEx (panelHandle, PANEL_STRIPCHART, 2, ATTR_TRACE_LG_TEXT, "Device 2");
	*/
	SetCtrlAttribute (panelHandle, PANEL_STRIPCHART, ATTR_NUM_TRACES, 2);//设置显示的波形数目
	SetTraceAttribute (panelHandle, PANEL_STRIPCHART, 1, ATTR_TRACE_COLOR, VAL_RED);//设置波形颜色
    SetTraceAttribute (panelHandle, PANEL_STRIPCHART, 2, ATTR_TRACE_COLOR, VAL_GREEN);
	SetTraceAttribute (panelHandle, PANEL_STRIPCHART, 1, ATTR_TRACE_LG_VISIBLE, 1);//设置波形说明是否可见
    SetTraceAttribute (panelHandle, PANEL_STRIPCHART, 2, ATTR_TRACE_LG_VISIBLE, 1);
	
	RunUserInterface ();
	DiscardPanel (panelHandle);
	return 0;
}

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

int CVICALLBACK timerFunction (int panel, int control, int event,
							   void *callbackData, int eventData1, int eventData2)
{
	//柱形图ID
	static int plotHandle10=0;
	static int plotHandle11=0; 
	
	static int plotHandle20=0; 
	static int plotHandle21=0;   
	
	int y=0;
	 
	char tt[50];
	double aa[2];
	switch (event)
	{
		case EVENT_TIMER_TICK:

			//
			aa[0]=(double)(rand()%10);
			aa[1]=(double)(rand()%10);
			PlotStripChart(panelHandle,PANEL_STRIPCHART,aa,2,0,0,VAL_DOUBLE);
			
			sprintf(tt,"chanel1  %.2f",aa[0]);
			SetTraceAttributeEx (panelHandle, PANEL_STRIPCHART, 1, ATTR_TRACE_LG_TEXT, tt);
			
			sprintf(tt,"chanel2  %.2f",aa[1]);   
            SetTraceAttributeEx (panelHandle, PANEL_STRIPCHART, 2, ATTR_TRACE_LG_TEXT, tt);
			
			//graph
			 y= rand()%100 ;
			 sprintf(tt,"chanel1  %d",y); 
			 DeleteGraphPlot (panelHandle, PANEL_GRAPH, plotHandle10, VAL_IMMEDIATE_DRAW);
		     plotHandle10 = PlotRectangle(panelHandle, PANEL_GRAPH, 5,0,10,y, VAL_RED, VAL_RED);
			 SetPlotAttribute (panel, PANEL_GRAPH, plotHandle10, ATTR_PLOT_LG_TEXT, tt);
			 
			 //plotText
			 DeleteGraphPlot (panelHandle, PANEL_GRAPH, plotHandle11, VAL_IMMEDIATE_DRAW);
			 plotHandle11=PlotText(panelHandle, PANEL_GRAPH, 0, y, tt, VAL_APP_FONT, VAL_RED, VAL_TRANSPARENT);
			 
			 y= rand()%100 ;
			 sprintf(tt,"chanel2  %d",y); 
			 DeleteGraphPlot (panelHandle, PANEL_GRAPH, plotHandle20, VAL_IMMEDIATE_DRAW);
		     plotHandle20 = PlotRectangle(panelHandle, PANEL_GRAPH, 25,0,30,y, VAL_BLUE, VAL_BLUE);
			 SetPlotAttribute (panel, PANEL_GRAPH, plotHandle20, ATTR_PLOT_LG_TEXT, tt) ;
			 
			 DeleteGraphPlot (panelHandle, PANEL_GRAPH, plotHandle21, VAL_IMMEDIATE_DRAW);
			 plotHandle21=PlotText(panelHandle, PANEL_GRAPH, 20, y, tt, VAL_APP_FONT,VAL_RED,VAL_TRANSPARENT );
			
			
			break;
	}
	return 0;
}

文字的删除也是通过句柄来删除的

DeleteGraphPlot (panelHandle, PANEL_GRAPH, plotHandle21, VAL_IMMEDIATE_DRAW);

 plotHandle21=PlotText(panelHandle, PANEL_GRAPH, 20, y, tt, VAL_APP_FONT,VAL_RED,VAL_TRANSPARENT );
            

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值