加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

HreoWinGauge2.0组件集应用示例----数据处理

发布时间:2020-12-14 03:44:33 所属栏目:大数据 来源:网络整理
导读:? HreoWinGauge2.0 试用版下载地址: http://download.csdn.net/source/6896899 ? ?????? HreoWinGauge 中包含一个功能齐全的数据处理模块,具有对数据进行输入输出、记录、回放、数学计算等处理功能。具体介绍参考《 HreoWinGauge2.0 组件集使用手册》。本

?

HreoWinGauge2.0 试用版下载地址:http://download.csdn.net/source/6896899

?

?????? HreoWinGauge中包含一个功能齐全的数据处理模块,具有对数据进行输入输出、记录、回放、数学计算等处理功能。具体介绍参考《HreoWinGauge2.0组件集使用手册》。本示例将在上一节数据输入输出示例的基础上,演示如何应用数据处理模块的记录、回放功能。

?

1)设置组件的自动记录输入数据功能

在上一节数据输入输出示例中,已创建一个命名为TestValueProcessor的窗体,并已将左右两个CircularPointer关联起来。用鼠标点击GaugeContainer对象右上角的三角形智能标记,弹出智能操作面板,点击“Task for selectded object” 选项卡中的“Edit”选项,此时打开一个“Gauge Container Editor”对话框。对话框上部显示有此对象的类型(GaugeContainer)和名称(gaugeContainer1)。在此对话框中找到ValueProcessors属性,然后点击其右侧的属性值框内的“...”按钮,弹出一个“ValueProcessor Collection Editor”对话框(见图7.9-1)。此对话框可对ValueProcessors集合进行各种编辑。点击ValueProcessor0对象,然后在右侧的属性编辑器内设置该ValueProcessor对象的内部属性:“HistoryDepth”设定为“10”;“HistoryDepthUnit”设为“Seconds”。然后点击OK按钮退出修改。此设置表示ValueProcessor0可以自动记录最近10秒钟的输入数据,可作为回放时输出使用。

?

7.9-1 ?Gauge Container Editor窗体1

?

2)添加和设置各种数据计算器

在图7.9-1 ?ValueProcessor Collection Editor窗体中找到ValueCalculators属性,用鼠标点击其右侧的属性值框内的“...”按钮,弹出一个“ValueCalculator Collection Editor”对话框(见图7.9-2)。此对话框可对ValueCalculators集合进行各种编辑。点击“Add”按钮添加各种ValueCalculator对象到对话框左侧的“Members”列举项中,并在对话框右侧的属性编辑器内设置各对象的内部属性。设置内容如下:

CorrectingValueCalculator0:“Type”设为“Unchange”;“Enable”设为“True”。

MathValueCalculator2:“Type”设为“RateOfChange”;“ValueDepth”设为“2”;“ValueDepthUnit”设为“Seconds”;“Enable”设为“True”。

?

7.9-2 ?ValueCalculator Collection Editor窗体1

?

3)设置圆形旋钮和圆形指针为接收回放数据

直接点击左侧圆形旋钮对象CircularPointer0区域,此时该对象将出现矩形选择框,然后点击右上角的三角形智能标记,弹出智能操作面板,点击“Task for selectded object”选项卡中的“Edit”选项,此时打开一个“Gauge Object Editor”对话框(见图7.8-6)。找到该CircularPointer0对象的内部属性:“ValueSource”设为“ValueProcessor0CorrectingValueCalculator0”。此设置表示,数据处理器ValueProcessor0CorrectingValueCalculator0的输出数据将送到此圆形旋钮中显示。

同理将右侧CircularPointer1对象的ValueSource”设为“ValueProcessor0MathValueCalculator2”。

?

4)添加各种回放功能按钮

TestValueProcessor窗体右侧添加4个功能按钮(见图7.9-4),分别为:PlaybackPauseResumeStop,并添加相应的Click事件响应函数。

?

7.9-4 ?TestValueProcessor窗体1

?

程序清单如下:

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

// add namespace

using HeroWinGauge;

?

?

namespace HeroWinGaugeSamples

{

??? public partial class TestValueProcessor : Form

??? {

?

? ??????private ValueProcessor vp;

??????? private CircularPointer cp;

?

?

??????? public TestValueProcessor()

??????? {

??????????? InitializeComponent();

??????? }

?

??????? private void TestValueProcessor_Load(object sender,EventArgs e)

??????? {

???????? ???cp = (HeroWinGauge.CircularPointer)gaugeContainer1.GaugeComponents[0].MiddleLayerParts[0];

??????????? vp = gaugeContainer1.ValueProcessors[0];

??????????

?

??????? }

?

??????? private void btnPlayback_Click(object sender,EventArgs e)

??????? {

??????? ????cp.DraggingEnable = false;????????????????? // must set false first for plackback;

??????????? if (!vp.StartPlayback())

??????????? {

??????????????? MessageBox.Show("Error in starting playback!");

??????????????? cp.DraggingEnable = true;???????????? ??// if playback false or over,then reset to true for enable dragging

??????????? }

?

??????? }

?

??????? private void btnPause_Click(object sender,EventArgs e)

??????? {

??????????? if (!vp.PausePlayback())

??????????? {

??????????????? MessageBox.Show("Error in pausing playback!");

?

??????????? }

?

??????? }

?

??????? private void btnResume_Click(object sender,EventArgs e)

??????? {

??????????? if (!vp.ResumePlayback())

??????????? {

??????????????? MessageBox.Show("Error in resuming playback!");

????????? ??}

??????? }

?

??????? private void btnStop_Click(object sender,EventArgs e)

??????? {

??????????? vp.StopPlayback();

??????? }

?

??????? private void gaugeContainer1_ProcessorPlaybackStateChanged(object sender,PlaybackStateChangedEventArgs e)

??????? {

??????????? switch (e.PlaybackState)

??????????? {

??????????????? case (OperatingState.Started):

??????????????????? btnPlayback.Enabled = false;

??????????????????? btnPause.Enabled = true;

??????????????????? btnResume.Enabled = false;

????????????????? ??btnStop.Enabled = true;

??????????????????? break;

??????????????? case (OperatingState.Paused):

??????????????????? btnPlayback.Enabled = false;

??????????????????? btnPause.Enabled = false;

??????????????????? btnResume.Enabled = true;

??????????????? ????btnStop.Enabled = true;

??????????????????? break;

??????????????? case (OperatingState.Resumed):

??????????????????? btnPlayback.Enabled = false;

??????????????????? btnPause.Enabled = true;

??????????????????? btnResume.Enabled = false;

???????????? ???????btnStop.Enabled = true;

??????????????????? break;

??????????????? case (OperatingState.Stopped):

??????????????? case (OperatingState.Complete):

??????????????????? btnPlayback.Enabled = true;

??????????????????? btnPause.Enabled = false;

???????? ???????????btnResume.Enabled = false;

??????????????????? btnStop.Enabled = false;

??????????????????? cp.DraggingEnable = true;?????????????????? // if playback false or over,then reset to true for enable dragging

??????????????????? break;

????????????? ??default:

??????????????????? break;

?

??????????? }

?????? }

}

?

以上程序中各按钮的功能如下:

Playback按钮:开始进行回放操作,ValueProcessor0进入数据回放状态,左右两个圆形指针将重现此前10秒种的转动过程。

Pause按钮:暂停当前正在回放操作,ValueProcessor0进入数据回放暂停状态,左右两个圆形指针将暂停回放转动过程。此时可使用Resume按钮恢复已暂停的回放操作。

Resume按钮:恢复已暂停的回放操作,ValueProcessor0重新进入数据回放状态,左右两个圆形指针继续回放转动过程。

Stop按钮:停止当前正在进行回放操作,ValueProcessor0进入数据回放停止状态,左右两个圆形指针将停止回放转动。此时可使用PlayBack按钮重新开始回放操作。

?

5)数据记录回放过程总结

?

1)记录和计算输出过程

当用鼠标拖动左侧圆形旋钮时,相当于输入CircularPointer0Value值,同时将当前Value值送往CircularPointer0.OuputProcessor属性指定的数据处理器ValueProcessor0中,ValueProcessor0首先将输入的数据保存到历史记录缓冲区中,然后将数据送到ValueProcessor0.ValueCalculators中的各种数据计算器进行运算处理,最后将各计算结果送往相应的图形类指针对象进行输出显示。图形类指针对象可以通过设定其ValueSource属性来指定数据输入源,例如:ValueProcessor0MathValueCalculator2

?

注意:记录过程中,尽管CircularPointer0也设置了ValueSourceValueProcessor0的数据计算器,但CircularPointer0输出的数据,经数据处理器ValueProcessor0处理计算后,输出的数据并没有重新回到该CircularPointer0,这是由于HreoWinGauge中已限定输出数据的对象不能同时成为输入数据的对象。

?

2)回放和计算输出过程

当点击Playback按钮后,ValueProcessor0进入数据回放状态,并拒绝外部数据输入。ValueProcessor0开始从历史记录缓冲区中按先进先出顺序取出数据,送到ValueProcessor0.ValueCalculators中的各种数据计算器进行运算处理,最后将各计算结果送往相应的图形类指针对象进行输出显示。图形类指针对象可以通过设定其ValueSource属性来指定数据输入源,例如:ValueProcessor0MathValueCalculator2

回放过程中可以暂停、恢复和停止。当历史记录缓冲区中所有数据取出处理后,回放操作结束,ValueProcessor0退出回放状态,重新允许外部数据输入。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读