养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

emWin电脑端模拟器之Graph控件波形曲线图

时间:2024-10-26 21:34:40

emWin是Segger公司针对嵌入式平台开发的的图形软件库。Graph控件可用于可视化数据。图形小工具的典型应用是显示测量值或函数图形的曲线,可同时显示条曲线。可使用水平和垂直刻度来标记曲线。可在背景上显示具有不同水平和垂直间距的网格。如果据阵列不能容纳进图形的可见区域,小工具可自动显示滚动条,从而可在大的数据阵列中进行滚动。

工具/原料

MicrosoftVisualStudio2013

SeggerEval_WIN32_MSVC_MinGW_GUI_V542源码

方法/步骤

1、【1】在SeggerEval_WIN32_MSVC_MinGW_GUI_V542目前下打开模拟器工程SimulationTrial.sln。【2】打开SWIPELIST_Demo.c文件,找到主函数voidMainTask(void)编译整个工程。生成-->生成解决方案。【3】编译成功后可运行模拟器。点击本地Windows调试器即可运行模拟器。本模拟器默认是运行官方提供的例程。【4】修改LCDConf.c文件下的XSIZE_PHYS和YSIZE_PHYS值即可改变模拟器运行屏幕的大小。修改后重新生成解决方案,再次运行。

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

2、【1】Graph控件的结构,主要包括,边框、框架、网格、数据对象、数据区、刻度条等等。【2】Graph控件的结构的细节描述如下:Border :可选边框是图形小工具的一部分。Frame :数据区四周的细线,是图形小工具的一部分。Grid :显示在数据区的背景中,是图形小工具的一部分。Dataarea :网格和数据对象的显示区域。Dataobject(s) :对于每条曲线,应向图形小工具添加一个数据对象。Applicationdefinedgraphic:应用程序定义的一种回调函数,可用于绘制任何应用程序定义的文本和/或图形。Scrollbar(s) :如果数据对象的范围大于图形小工具的数据区,则图形小工具可自动显示水平和/或垂直滚动条。Scaleobject(s) :可附加到图形小工具的水平和垂直刻度。X-Size :数据区的X尺寸。Y-Size :数据区的Y尺寸。【3】将例程提供的主函数修改或屏蔽掉,重新编写一个voidMainTask(void)主函数。编译、运行查看效果。voidMainTask(void){ GUI_Init();//初始化emWin GUI_SetBkColor(GUI_WHITE);//设置背景色 GUI_SetColor(GUI_BLUE);//设置前景色 GUI_Clear();//清屏 while(1) { GUI_Delay(50); }}【4】绘制标题、文本、直线、填充矩形,形成一个小小的框架,编译、运行查看效果。intLCD_XWIDTH_SIZE=0;//LCDX轴物理尺寸intLCD_YHIGH_SIZE=0;//LCDY轴物理尺寸voidMainTask(void){ GUI_Init(); //初始化emWin GUI_SetBkColor(GUI_WHITE); //设置背景色 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_Clear(); //清屏 LCD_XWIDTH_SIZE=LCD_GetXSize(); //LCDX轴物理尺寸 LCD_YHIGH_SIZE=LCD_GetYSize(); //LCDY轴物理尺寸 GUI_SetColor(0xFF901E); //设置前景色 GUI_FillRect(0,0,LCD_XWIDTH_SIZE,30); //填充矩形 GUI_SetFont(&GUI_Font8x18); //设置字体 GUI_SetBkColor(0xFF901E); //设置背景色 GUI_SetColor(GUI_WHITE); //设置前景色 GUI_DispStringAt("emWinDemoForGraphWidget",270,7); //显示文本 GUI_SetColor(GUI_RED); //设置前景色 GUI_DrawLine(500,31,500,LCD_YHIGH_SIZE); //绘制直线 while(1) { GUI_Delay(50);//延时 }}

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

3、【1】创建Graph控件,使用如下函数:GRAPH_HandleGRAPH_CreateEx(intx0,inty0,intxsize,intysize,WM_HWINhParent,intWinFlags,intExFlags,intId);【2】为Graph控件设置左、上、右和下边框。voidGRAPH_SetBorder(GRAPH_HandlehObj,unsignedBorderL,unsignedBorderT,unsignedBorderR,unsignedBorderB);【3】编译,运行查看创建的Graph控件。intLCD_XWIDTH_SIZE=0;//LCDX轴物理尺寸intLCD_YHIGH_SIZE=0;//LCDY轴物理尺寸voidMainTask(void){ GRAPH_HandlehGraphHandle;//Graph控件句柄 GUI_Init(); //初始化emWin GUI_SetBkColor(GUI_WHITE); //设置背景色 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_Clear(); //清屏 LCD_XWIDTH_SIZE=LCD_GetXSize(); //LCDX轴物理尺寸 LCD_YHIGH_SIZE=LCD_GetYSize(); //LCDY轴物理尺寸 GUI_SetColor(0xFF901E); //设置前景色 GUI_FillRect(0,0,LCD_XWIDTH_SIZE,30); //填充矩形 GUI_SetFont(&GUI_Font8x18); //设置字体 GUI_SetBkColor(0xFF901E); //设置背景色 GUI_SetColor(GUI_WHITE); //设置前景色 GUI_DispStringAt("emWinDemoForGraphWidget",270,7); //显示文本 GUI_SetColor(GUI_RED); //设置前景色 GUI_DrawLine(560,31,560,LCD_YHIGH_SIZE); //绘制直线 hGraphHandle=GRAPH_CreateEx(20,50,520,430,WM_HBKWIN,(WM_CF_SHOW|WM_CF_CONST_OUTLINE),GRAPH_CF_GRID_FIXED_X,GUI_ID_GRAPH0);//创建Graph控件 GRAPH_SetBorder(hGraphHandle,50,10,10,30);//设置Graph图形左、上、右和下边框 while(1) { GUI_Delay(50);//延时 }}

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

4、【1】设置给定图形小工具的所需颜色。GUI_COLORGRAPH_SetColor(GRAPH_HandlehObj,GUI_COLORColor,unsignedIndex);【2】设置网格线的可见性。unsignedGRAPH_SetGridVis(GRAPH_HandlehObj,unsignedOnOff);【3】编译,运行查看小工具的所需颜色和网格线的可见性。intLCD_XWIDTH_SIZE=0;//LCDX轴物理尺寸intLCD_YHIGH_SIZE=0;//LCDY轴物理尺寸voidMainTask(void){ GRAPH_HandlehGraphHandle;//Graph控件句柄 GUI_Init(); //初始化emWin GUI_SetBkColor(GUI_WHITE); //设置背景色 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_Clear(); //清屏 LCD_XWIDTH_SIZE=LCD_GetXSize(); //LCDX轴物理尺寸 LCD_YHIGH_SIZE=LCD_GetYSize(); //LCDY轴物理尺寸 GUI_SetColor(0xFF901E); //设置前景色 GUI_FillRect(0,0,LCD_XWIDTH_SIZE,30); //填充矩形 GUI_SetFont(&GUI_Font8x18); //设置字体 GUI_SetBkColor(0xFF901E); //设置背景色 GUI_SetColor(GUI_WHITE); //设置前景色 GUI_DispStringAt("emWinDemoForGraphWidget",270,7); //显示文本 GUI_SetColor(GUI_RED); //设置前景色 GUI_DrawLine(560,31,560,LCD_YHIGH_SIZE); //绘制直线 hGraphHandle=GRAPH_CreateEx(20,50,520,430,WM_HBKWIN,(WM_CF_SHOW|WM_CF_CONST_OUTLINE),GRAPH_CF_GRID_FIXED_X,GUI_ID_GRAPH0);//创建Graph控件 GRAPH_SetBorder(hGraphHandle,50,10,10,30);//设置Graph图形左、上、右和下边框 GRAPH_SetColor(hGraphHandle,GUI_BLACK,GRAPH_CI_BK); //设置背景颜色 GRAPH_SetColor(hGraphHandle,GUI_GRAY_E7,GRAPH_CI_BORDER); //设置边框区域的颜色 GRAPH_SetColor(hGraphHandle,0xFF901E,GRAPH_CI_FRAME); //设置细框架线的颜色。 GRAPH_SetColor(hGraphHandle,GUI_WHITE,GRAPH_CI_GRID); //设置网格的颜色 GRAPH_SetGridVis(hGraphHandle,1);//设置网格线的可见性 while(1) { GUI_Delay(50);//延时 }}

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

5、【1】这些函数设置从一条网格线到下一网格线的距离。函数原型:unsignedGRAPH_SetGridDistX(GRAPH_HandlehObj,unsignedValue);【2】这些函数用于设置水平和垂直网格线的线型。函数原型:U8GRAPH_SetLineStyleH(GRAPH_HandlehObj,U8LineStyle);U8GRAPH_SetLineStyleV(GRAPH_HandlehObj,U8LineStyle);【3】编译,运行查看网格线的距离和水平和垂直网格线的线型。intLCD_XWIDTH_SIZE=0;//LCDX轴物理尺寸intLCD_YHIGH_SIZE=0;//LCDY轴物理尺寸voidMainTask(void){ GRAPH_HandlehGraphHandle;//Graph控件句柄 GUI_Init(); //初始化emWin GUI_SetBkColor(GUI_WHITE); //设置背景色 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_Clear(); //清屏 LCD_XWIDTH_SIZE=LCD_GetXSize(); //LCDX轴物理尺寸 LCD_YHIGH_SIZE=LCD_GetYSize(); //LCDY轴物理尺寸 GUI_SetColor(0xFF901E); //设置前景色 GUI_FillRect(0,0,LCD_XWIDTH_SIZE,30); //填充矩形 GUI_SetFont(&GUI_Font8x18); //设置字体 GUI_SetBkColor(0xFF901E); //设置背景色 GUI_SetColor(GUI_WHITE); //设置前景色 GUI_DispStringAt("emWinDemoForGraphWidget",270,7); //显示文本 GUI_SetColor(GUI_RED); //设置前景色 GUI_DrawLine(560,31,560,LCD_YHIGH_SIZE); //绘制直线 hGraphHandle=GRAPH_CreateEx(20,50,520,430,WM_HBKWIN,(WM_CF_SHOW|WM_CF_CONST_OUTLINE),GRAPH_CF_GRID_FIXED_X,GUI_ID_GRAPH0);//创建Graph控件 GRAPH_SetBorder(hGraphHandle,50,10,10,30);//设置Graph图形左、上、右和下边框 GRAPH_SetColor(hGraphHandle,GUI_BLACK,GRAPH_CI_BK); //设置背景颜色 GRAPH_SetColor(hGraphHandle,GUI_GRAY_E7,GRAPH_CI_BORDER); //设置边框区域的颜色 GRAPH_SetColor(hGraphHandle,0xFF901E,GRAPH_CI_FRAME); //设置细框架线的颜色。 GRAPH_SetColor(hGraphHandle,GUI_WHITE,GRAPH_CI_GRID); //设置网格的颜色 GRAPH_SetGridVis(hGraphHandle,1);//设置网格线的可见性 GRAPH_SetGridDistX(hGraphHandle,50);//X网格线的距离 GRAPH_SetGridDistY(hGraphHandle,30);//Y网格线的距离 GRAPH_SetLineStyleH(hGraphHandle,GUI_LS_DOT);//垂直网格线线型 GRAPH_SetLineStyleV(hGraphHandle,GUI_LS_DOT);//水平网格线线型 while(1) { GUI_Delay(50);//延时 }}

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

6、【1】添加文本说明RuningC艺皱麾酪ount、Data1Value、Data2Value。函数原型:voidGUI_Di霜杼厮贿spDecAt(I32v,I16Px,I16Py,U8Len);函数原型:voidGUI_DispStringAt(constcharGUI_FAR*s,intx,inty);【2】添加说明文本的核心代码。GUI_SetBkColor(GUI_WHITE); //设置背景色 GUI_SetColor(GUI_BLACK); //设置前景色 GUI_DispStringAt("RuningCount:",580,50); //显示文本 GUI_DispStringAt("Data1Value:",580,90); //显示文本 GUI_DispStringAt("Data2Value:",580,130); //显示文本 GUI_DispDecAt(iCount,720,50,3); //显示十进制数值 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_DispDecAt(graphDat1,720,90,3); //显示十进制数值 GUI_SetColor(GUI_GREEN); //设置前景色 GUI_DispDecAt(graphDat2,720,130,3); //显示十进制数值【3】编译、运行查看添加说明文本的效果。intLCD_XWIDTH_SIZE=0;//LCDX轴物理尺寸intLCD_YHIGH_SIZE=0;//LCDY轴物理尺寸voidMainTask(void){ GRAPH_HandlehGraphHandle; //Graph控件句柄 GRAPH_SCALE_HandlehScaleHandle; //水平刻度句柄 GRAPH_SCALE_HandlevScaleHandle; //垂直刻度句柄 unsignedshortintgraphDat1=0; //Graph数据1 unsignedshortintgraphDat2=0; //Graph数据2 unsignedshortintiCount=0; //运行次数 GUI_Init(); //初始化emWin GUI_SetBkColor(GUI_WHITE); //设置背景色 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_Clear(); //清屏 LCD_XWIDTH_SIZE=LCD_GetXSize(); //LCDX轴物理尺寸 LCD_YHIGH_SIZE=LCD_GetYSize(); //LCDY轴物理尺寸 GUI_SetColor(0xFF901E); //设置前景色 GUI_FillRect(0,0,LCD_XWIDTH_SIZE,30); //填充矩形 GUI_SetFont(&GUI_Font8x18); //设置字体 GUI_SetBkColor(0xFF901E); //设置背景色 GUI_SetColor(GUI_WHITE); //设置前景色 GUI_DispStringAt("emWinDemoForGraphWidget",270,7); //显示文本 GUI_SetColor(GUI_RED); //设置前景色 GUI_DrawLine(560,31,560,LCD_YHIGH_SIZE); //绘制直线 GUI_SetBkColor(GUI_WHITE); //设置背景色 GUI_SetColor(GUI_BLACK); //设置前景色 GUI_DispStringAt("RuningCount:",580,50); //显示文本 GUI_DispStringAt("Data1Value:",580,90); //显示文本 GUI_DispStringAt("Data2Value:",580,130); //显示文本 GUI_DispDecAt(iCount,720,50,3); //显示十进制数值 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_DispDecAt(graphDat1,720,90,3); //显示十进制数值 GUI_SetColor(GUI_GREEN); //设置前景色 GUI_DispDecAt(graphDat2,720,130,3); //显示十进制数值 hGraphHandle=GRAPH_CreateEx(20,50,520,430,WM_HBKWIN,(WM_CF_SHOW|WM_CF_CONST_OUTLINE),GRAPH_CF_GRID_FIXED_X,GUI_ID_GRAPH0);//创建Graph控件 GRAPH_SetBorder(hGraphHandle,50,10,10,30);//设置Graph图形左、上、右和下边框 GRAPH_SetColor(hGraphHandle,GUI_BLACK,GRAPH_CI_BK); //设置背景颜色 GRAPH_SetColor(hGraphHandle,GUI_GRAY_E7,GRAPH_CI_BORDER); //设置边框区域的颜色 GRAPH_SetColor(hGraphHandle,0xFF901E,GRAPH_CI_FRAME); //设置细框架线的颜色。 GRAPH_SetColor(hGraphHandle,GUI_WHITE,GRAPH_CI_GRID); //设置网格的颜色 GRAPH_SetGridVis(hGraphHandle,1);//设置网格线的可见性 GRAPH_SetGridDistX(hGraphHandle,50); //X网格线的距离 GRAPH_SetGridDistY(hGraphHandle,30); //Y网格线的距离 GRAPH_SetLineStyleH(hGraphHandle,GUI_LS_DOT); //垂直网格线线型 GRAPH_SetLineStyleV(hGraphHandle,GUI_LS_DOT); //水平网格线线型 while(1) { GUI_Delay(200);//延时 }}

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

7、【1】为Graph控件,添加水平方囿鹣分胰向和垂直方向的刻度。创建刻度对象函数原型:GRAPH_SCALE_HandleGRAPH_SC帆歌达缒ALE_Create(intPos,intAlign,unsignedFlags,unsignedTickDist);设置刻度编号的字体函数原型如下:constGUI_FONT*GRAPH_SCALE_SetFont(GRAPH_SCALE_HandlehScaleObj,constGUI_FONT*pFont);设置用于绘制编号的文本颜色函数原型如下:GUI_COLORGRAPH_SCALE_SetTextColor(GRAPH_SCALE_HandlehScaleObj,GUI_COLORColor);设置要显示的小数点后的位数函数原型如下:intGRAPH_SCALE_SetNumDecs(GRAPH_SCALE_HandlehScaleObj,intNumDecs);将刻度对象附加到现有图形小工具函数原型如下:voidGRAPH_AttachScale(GRAPH_HandlehObj,GRAPH_SCALE_HandlehScale);【2】添加水平方向的刻度核心代码如下://水平方向上的刻度 hScaleHandle=GRAPH_SCALE_Create(405,GUI_TA_HCENTER,GRAPH_SCALE_CF_HORIZONTAL,50);//创建水平方向刻度 GRAPH_SCALE_SetFont(hScaleHandle,&GUI_Font8x16); //设置刻度字体 GRAPH_SCALE_SetTextColor(hScaleHandle,GUI_BLUE); //设置刻度的文本颜色 GRAPH_AttachScale(hGraphHandle,hScaleHandle); //将刻度对象附加到Graph控件【3】添加垂直方向的刻度核心代码如下://垂直方向上的刻度 vScaleHandle=GRAPH_SCALE_Create(25,GUI_TA_HCENTER,GRAPH_SCALE_CF_VERTICAL,30);//创建刻度对象 GRAPH_SCALE_SetFont(vScaleHandle,&GUI_Font8x8); //设置刻度字体 GRAPH_SCALE_SetTextColor(vScaleHandle,GUI_BLUE); //设置刻度的文本颜色 GRAPH_SCALE_SetNumDecs(vScaleHandle,1); //设置刻度条小数点位数 GRAPH_AttachScale(hGraphHandle,vScaleHandle); //将刻度对象附加到Graph控件【4】验证添加为Graph控件,添加水平方向和垂直方向的刻度效果。intLCD_XWIDTH_SIZE=0;//LCDX轴物理尺寸intLCD_YHIGH_SIZE=0;//LCDY轴物理尺寸voidMainTask(void){ GRAPH_HandlehGraphHandle; //Graph控件句柄 GRAPH_SCALE_HandlehScaleHandle; //水平刻度句柄 GRAPH_SCALE_HandlevScaleHandle; //垂直刻度句柄 unsignedshortintgraphDat1=0; //Graph数据1 unsignedshortintgraphDat2=0; //Graph数据2 unsignedshortintiCount=0; //运行次数 GUI_Init(); //初始化emWin GUI_SetBkColor(GUI_WHITE); //设置背景色 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_Clear(); //清屏 LCD_XWIDTH_SIZE=LCD_GetXSize(); //LCDX轴物理尺寸 LCD_YHIGH_SIZE=LCD_GetYSize(); //LCDY轴物理尺寸 GUI_SetColor(0xFF901E); //设置前景色 GUI_FillRect(0,0,LCD_XWIDTH_SIZE,30); //填充矩形 GUI_SetFont(&GUI_Font8x18); //设置字体 GUI_SetBkColor(0xFF901E); //设置背景色 GUI_SetColor(GUI_WHITE); //设置前景色 GUI_DispStringAt("emWinDemoForGraphWidget",270,7); //显示文本 GUI_SetColor(GUI_RED); //设置前景色 GUI_DrawLine(560,31,560,LCD_YHIGH_SIZE); //绘制直线 GUI_SetBkColor(GUI_WHITE); //设置背景色 GUI_SetColor(GUI_BLACK); //设置前景色 GUI_DispStringAt("RuningCount:",580,50); //显示文本 GUI_DispStringAt("Data1Value:",580,90); //显示文本 GUI_DispStringAt("Data2Value:",580,130); //显示文本 GUI_DispDecAt(iCount,720,50,3); //显示十进制数值 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_DispDecAt(graphDat1,720,90,3); //显示十进制数值 GUI_SetColor(GUI_GREEN); //设置前景色 GUI_DispDecAt(graphDat2,720,130,3); //显示十进制数值 hGraphHandle=GRAPH_CreateEx(20,50,520,430,WM_HBKWIN,(WM_CF_SHOW|WM_CF_CONST_OUTLINE),GRAPH_CF_GRID_FIXED_X,GUI_ID_GRAPH0);//创建Graph控件 GRAPH_SetBorder(hGraphHandle,50,10,10,30);//设置Graph图形左、上、右和下边框 GRAPH_SetColor(hGraphHandle,GUI_BLACK,GRAPH_CI_BK); //设置背景颜色 GRAPH_SetColor(hGraphHandle,GUI_GRAY_E7,GRAPH_CI_BORDER); //设置边框区域的颜色 GRAPH_SetColor(hGraphHandle,0xFF901E,GRAPH_CI_FRAME); //设置细框架线的颜色。 GRAPH_SetColor(hGraphHandle,GUI_WHITE,GRAPH_CI_GRID); //设置网格的颜色 GRAPH_SetGridVis(hGraphHandle,1);//设置网格线的可见性 GRAPH_SetGridDistX(hGraphHandle,50); //X网格线的距离 GRAPH_SetGridDistY(hGraphHandle,30); //Y网格线的距离 GRAPH_SetLineStyleH(hGraphHandle,GUI_LS_DOT); //垂直网格线线型 GRAPH_SetLineStyleV(hGraphHandle,GUI_LS_DOT); //水平网格线线型 //水平方向上的刻度 hScaleHandle=GRAPH_SCALE_Create(405,GUI_TA_HCENTER,GRAPH_SCALE_CF_HORIZONTAL,50);//创建水平方向刻度 GRAPH_SCALE_SetFont(hScaleHandle,&GUI_Font8x16); //设置刻度字体 GRAPH_SCALE_SetTextColor(hScaleHandle,GUI_BLUE); //设置刻度的文本颜色 GRAPH_AttachScale(hGraphHandle,hScaleHandle); //将刻度对象附加到Graph控件 //垂直方向上的刻度 vScaleHandle=GRAPH_SCALE_Create(25,GUI_TA_HCENTER,GRAPH_SCALE_CF_VERTICAL,30);//创建刻度对象 GRAPH_SCALE_SetFont(vScaleHandle,&GUI_Font8x8); //设置刻度字体 GRAPH_SCALE_SetTextColor(vScaleHandle,GUI_BLUE); //设置刻度的文本颜色 GRAPH_SCALE_SetNumDecs(vScaleHandle,1); //设置刻度条小数点位数 GRAPH_AttachScale(hGraphHandle,vScaleHandle); //将刻度对象附加到Graph控件 while(1) { GUI_Delay(200);//延时 }}

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

8、【1】设置用于计算要绘制的编号的因赤蹭荸锅子函数原型如下:floatGRAPH_SCALE_SetFac墉掠载牿tor(GRAPH_SCALE_HandlehScaleObj,floatFactor);GUI_Delay(5000);//延时 GRAPH_SCALE_SetFactor(hScaleHandle,0.1); //设置用于计算要绘制的编号的因子 GRAPH_SCALE_SetFactor(vScaleHandle,0.5); //设置用于计算要绘制的编号的因子【2】创建GRAPH_DATA_YT对象函数原型如下:GRAPH_DATA_HandleGRAPH_DATA_YT_Create(GUI_COLORColor,unsignedMaxNumItems,I16*pData,unsignedNumItems);dGraphDat1Handle=GRAPH_DATA_YT_Create(GUI_BLUE,460,0,0); //创建GRAPH_DATA_YT对象dGraphDat2Handle=GRAPH_DATA_YT_Create(GUI_GREEN,460,0,0); //创建GRAPH_DATA_YT对象【3】设置数据的对齐方式函数原型如下:voidGRAPH_DATA_YT_SetAlign(GRAPH_DATA_HandlehDataObj,intAlign);GRAPH_DATA_YT_SetAlign(dGraphDat1Handle,GRAPH_ALIGN_LEFT); //设置数据的对齐方式GRAPH_DATA_YT_SetAlign(dGraphDat2Handle,GRAPH_ALIGN_LEFT); //设置数据的对齐方式【4】设置用于绘制对象数据的垂直偏移函数原型如下:voidGRAPH_DATA_YT_SetOffY(GRAPH_DATA_HandlehDataObj,intOff);GRAPH_DATA_YT_SetOffY(dGraphDat1Handle,200); //设置用于绘制对象数据的垂直偏移GRAPH_DATA_YT_SetOffY(dGraphDat2Handle,20); //设置用于绘制对象数据的垂直偏移【5】将数据对象附加到现有图形小工具函数原型如下:voidGRAPH_AddGraph(GRAPH_HandlehObj,GRAPH_DATA_HandlehData);GRAPH_AttachData(hGraphHandle,dGraphDat1Handle); //将数据对象附加到现有图形小工具。GRAPH_AttachData(hGraphHandle,dGraphDat2Handle); //将数据对象附加到现有图形小工具。【6】核心代码如下:dGraphDat1Handle=GRAPH_DATA_YT_Create(GUI_BLUE,460,0,0); //创建GRAPH_DATA_YT对象 GRAPH_DATA_YT_SetAlign(dGraphDat1Handle,GRAPH_ALIGN_LEFT); //设置数据的对齐方式 GRAPH_DATA_YT_SetOffY(dGraphDat1Handle,200); //设置用于绘制对象数据的垂直偏移 GRAPH_AttachData(hGraphHandle,dGraphDat1Handle); //将数据对象附加到现有图形小工具。 dGraphDat2Handle=GRAPH_DATA_YT_Create(GUI_GREEN,460,0,0); //创建GRAPH_DATA_YT对象 GRAPH_DATA_YT_SetAlign(dGraphDat2Handle,GRAPH_ALIGN_LEFT); //设置数据的对齐方式 GRAPH_DATA_YT_SetOffY(dGraphDat2Handle,20); //设置用于绘制对象数据的垂直偏移 GRAPH_AttachData(hGraphHandle,dGraphDat2Handle); //将数据对象附加到现有图形小工具。

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

9、【1】向GRAPH_DATA_YT对象添加新数据项函数原型如下:voidGRAPH_DATA_YT_AddValue(GRAPH_DATA_HandlehDataObj,I16Value);graphDat1=rand()%180; graphDat2=rand()%100; GRAPH_DATA_YT_AddValue(dGraphDat1Handle,graphDat1); //向GRAPH_DATA_YT对象添加数据项。 GRAPH_DATA_YT_AddValue(dGraphDat2Handle,graphDat2); //向GRAPH_DATA_YT对象添加数据项。【2】清除数据对象的所有数据项函数原型如下:voidGRAPH_DATA_YT_Clear(GRAPH_DATA_HandlehDataObj);if(++iCount>460) { iCount=0; GRAPH_DATA_YT_Clear(dGraphDat1Handle);//清除GRAPH_DATA_YT对象的所有数据项 GRAPH_DATA_YT_Clear(dGraphDat2Handle);//清除GRAPH_DATA_YT对象的所有数据项 }【3】辅助辅助调试信息核心代码如下GUI_SetColor(GUI_BLACK); //设置前景色 GUI_DispDecAt(iCount,720,50,3); //显示十进制数值 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_DispDecAt(graphDat1,720,90,3); //显示十进制数值 GUI_SetColor(GUI_GREEN); //设置前景色 GUI_DispDecAt(graphDat2,720,130,3); //显示十进制数值【4】编译运行查看效果。

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

10、【1】核心源码如下:intLCD娄多骋能_XWIDTH_SIZE=0;//LCDX轴物理尺寸intLCD_YHIGH_SIZE=0;//LCDY轴物理尺寸voidMainTask(v泠贾高框oid){ GRAPH_HandlehGraphHandle; //Graph控件句柄 GRAPH_SCALE_HandlehScaleHandle; //水平刻度句柄 GRAPH_SCALE_HandlevScaleHandle; //垂直刻度句柄 GRAPH_DATA_HandledGraphDat1Handle; //Graph数据1句柄 GRAPH_DATA_HandledGraphDat2Handle; //Graph数据2句柄 unsignedshortintgraphDat1=0; //Graph数据1 unsignedshortintgraphDat2=0; //Graph数据2 unsignedshortintiCount=0; //运行次数 GUI_Init(); //初始化emWin GUI_SetBkColor(GUI_WHITE); //设置背景色 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_Clear(); //清屏 LCD_XWIDTH_SIZE=LCD_GetXSize(); //LCDX轴物理尺寸 LCD_YHIGH_SIZE=LCD_GetYSize(); //LCDY轴物理尺寸 GUI_SetColor(0xFF901E); //设置前景色 GUI_FillRect(0,0,LCD_XWIDTH_SIZE,30); //填充矩形 GUI_SetFont(&GUI_Font8x18); //设置字体 GUI_SetBkColor(0xFF901E); //设置背景色 GUI_SetColor(GUI_WHITE); //设置前景色 GUI_DispStringAt("emWinDemoForGraphWidget",270,7); //显示文本 GUI_SetColor(GUI_RED); //设置前景色 GUI_DrawLine(560,31,560,LCD_YHIGH_SIZE); //绘制直线 GUI_SetBkColor(GUI_WHITE); //设置背景色 GUI_SetColor(GUI_BLACK); //设置前景色 GUI_DispStringAt("RuningCount:",580,50); //显示文本 GUI_DispStringAt("Data1Value:",580,90); //显示文本 GUI_DispStringAt("Data2Value:",580,130); //显示文本 GUI_DispDecAt(iCount,720,50,3); //显示十进制数值 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_DispDecAt(graphDat1,720,90,3); //显示十进制数值 GUI_SetColor(GUI_GREEN); //设置前景色 GUI_DispDecAt(graphDat2,720,130,3); //显示十进制数值 hGraphHandle=GRAPH_CreateEx(20,50,520,430,WM_HBKWIN,(WM_CF_SHOW|WM_CF_CONST_OUTLINE),GRAPH_CF_GRID_FIXED_X,GUI_ID_GRAPH0);//创建Graph控件 GRAPH_SetBorder(hGraphHandle,50,10,10,30);//设置Graph图形左、上、右和下边框 GRAPH_SetColor(hGraphHandle,GUI_BLACK,GRAPH_CI_BK); //设置背景颜色 GRAPH_SetColor(hGraphHandle,GUI_GRAY_E7,GRAPH_CI_BORDER); //设置边框区域的颜色 GRAPH_SetColor(hGraphHandle,0xFF901E,GRAPH_CI_FRAME); //设置细框架线的颜色。 GRAPH_SetColor(hGraphHandle,GUI_WHITE,GRAPH_CI_GRID); //设置网格的颜色 GRAPH_SetGridVis(hGraphHandle,1);//设置网格线的可见性 GRAPH_SetGridDistX(hGraphHandle,50); //X网格线的距离 GRAPH_SetGridDistY(hGraphHandle,30); //Y网格线的距离 GRAPH_SetLineStyleH(hGraphHandle,GUI_LS_DOT); //垂直网格线线型 GRAPH_SetLineStyleV(hGraphHandle,GUI_LS_DOT); //水平网格线线型 //水平方向上的刻度 hScaleHandle=GRAPH_SCALE_Create(405,GUI_TA_HCENTER,GRAPH_SCALE_CF_HORIZONTAL,50);//创建水平方向刻度 GRAPH_SCALE_SetFont(hScaleHandle,&GUI_Font8x16); //设置刻度字体 GRAPH_SCALE_SetTextColor(hScaleHandle,GUI_BLUE); //设置刻度的文本颜色 GRAPH_AttachScale(hGraphHandle,hScaleHandle); //将刻度对象附加到Graph控件 //垂直方向上的刻度 vScaleHandle=GRAPH_SCALE_Create(25,GUI_TA_HCENTER,GRAPH_SCALE_CF_VERTICAL,30);//创建刻度对象 GRAPH_SCALE_SetFont(vScaleHandle,&GUI_Font8x8); //设置刻度字体 GRAPH_SCALE_SetTextColor(vScaleHandle,GUI_BLUE); //设置刻度的文本颜色 GRAPH_SCALE_SetNumDecs(vScaleHandle,1); //设置刻度条小数点位数 GRAPH_AttachScale(hGraphHandle,vScaleHandle); //将刻度对象附加到Graph控件 GUI_Delay(5000);//延时 GRAPH_SCALE_SetFactor(hScaleHandle,0.1); //设置用于计算要绘制的编号的因子 GRAPH_SCALE_SetFactor(vScaleHandle,0.5); //设置用于计算要绘制的编号的因子 dGraphDat1Handle=GRAPH_DATA_YT_Create(GUI_BLUE,460,0,0); //创建GRAPH_DATA_YT对象 GRAPH_DATA_YT_SetAlign(dGraphDat1Handle,GRAPH_ALIGN_LEFT); //设置数据的对齐方式 GRAPH_DATA_YT_SetOffY(dGraphDat1Handle,200); //设置用于绘制对象数据的垂直偏移 GRAPH_AttachData(hGraphHandle,dGraphDat1Handle); //将数据对象附加到现有图形小工具。 dGraphDat2Handle=GRAPH_DATA_YT_Create(GUI_GREEN,460,0,0); //创建GRAPH_DATA_YT对象 GRAPH_DATA_YT_SetAlign(dGraphDat2Handle,GRAPH_ALIGN_LEFT); //设置数据的对齐方式 GRAPH_DATA_YT_SetOffY(dGraphDat2Handle,20); //设置用于绘制对象数据的垂直偏移 GRAPH_AttachData(hGraphHandle,dGraphDat2Handle); //将数据对象附加到现有图形小工具。 while(1) { graphDat1=rand()%180; graphDat2=rand()%100; GRAPH_DATA_YT_AddValue(dGraphDat1Handle,graphDat1); //向GRAPH_DATA_YT对象添加数据项。 GRAPH_DATA_YT_AddValue(dGraphDat2Handle,graphDat2); //向GRAPH_DATA_YT对象添加数据项。 GUI_Delay(200);//延时 if(++iCount>460) { iCount=0; GRAPH_DATA_YT_Clear(dGraphDat1Handle);//清除GRAPH_DATA_YT对象的所有数据项 GRAPH_DATA_YT_Clear(dGraphDat2Handle);//清除GRAPH_DATA_YT对象的所有数据项 } GUI_SetColor(GUI_BLACK); //设置前景色 GUI_DispDecAt(iCount,720,50,3); //显示十进制数值 GUI_SetColor(GUI_BLUE); //设置前景色 GUI_DispDecAt(graphDat1,720,90,3); //显示十进制数值 GUI_SetColor(GUI_GREEN); //设置前景色 GUI_DispDecAt(graphDat2,720,130,3); //显示十进制数值 }}

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

emWin电脑端模拟器之Graph控件波形曲线图

© 一点知识