备注:(1)打开工程目录下的"Exe\GUISimulationDebug.exe"即可看到效果。(2)看完教程000~005就基本会用emWin做项目,其他章节可以需要时再参考。
使用GUIBuilder V5.30创建如下页面并保存为C文件,然后添加到脱机模拟仿真平台CodeBlocks:
(1)在WM_INIT_DIALOG消息中(窗口初始化时程序跑到这里)添加GRAPH控件的初始化代码:
hItem =WM_GetDialogItem(pMsg->hWin, ID_GRAPH_0);
GRAPH_SetBorder(hItem,40, 5, 5, 30);
GRAPH_SetGridVis(hItem,1);
GRAPH_SetGridFixedX(hItem,1);
GRAPH_SetGridDistY(hItem,25);
GRAPH_SetGridDistX(hItem,50);
hScaleV =GRAPH_SCALE_Create(30, GUI_TA_RIGHT, GRAPH_SCALE_CF_VERTICAL, 25);//创建和增加垂直范围尺度标签
GRAPH_SCALE_SetTextColor(hScaleV,GUI_RED); //设置标签字体颜色
GRAPH_AttachScale(hItem,hScaleV); //将标签添加到垂直方向
hScaleH =GRAPH_SCALE_Create(150, GUI_TA_HCENTER, GRAPH_SCALE_CF_HORIZONTAL, 50);//创建和增加水平范围尺度标签
GRAPH_SCALE_SetTextColor(hScaleH,GUI_DARKGREEN); //设置字体颜色
GRAPH_AttachScale(hItem,hScaleH); //添加到水平方向
pdataGRP =GRAPH_DATA_YT_Create(GUI_GREEN, 500/*最大数据个数*/, 0, 0);//创建一个数据曲线,可创建多个曲线
GRAPH_AttachData(hItem,pdataGRP); //为绘图控件添加数据对象
(2)创建一个软件定时器TIMER:
WM_HWINCreateFramewin(void) {
WM_HWIN hWin;
hWin = GUI_CreateDialogBox(_aDialogCreate,GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
WM_CreateTimer(WM_GetClientWindow(hWin),1, 300, 0); //创建一个软件定时器
return hWin;
}
(3)到这里GRAPH控件创建完毕,我们使用GRAPH控件显示数据曲线只需做的事情是将获得的数据(比如AD转换值)用GRAPH_DATA_YT_AddValue()函数赋值给GRAPH控件,每赋值一个数据则显示一个点,点和点之间emWin会自动连结起来,无需我们操心:
在此例程中有三个地方给曲线赋值:
(1)TIMER定时器(比如可以在这里定时采集一个数据并显示曲线)
(2)四个Button控件
以上的例程只说明了GRAPH控件的最基本的应用,更多应用和功能请阅读以下3个官方例程:
源码/软件下载