vs C# WPF DynamicDataDisplay 绘图 chart 模拟示波器 带源代码

WPF使用DynamicDataDisplay快速实现示波器功能

源代码:http://download.csdn.net/detail/wyx100/8408653

 

2013-11-07  来自:博客园  字体大小:【    
  • 摘要:DynamicDataDisplay控件是一个功能很强的绘图工具,除了能生成曲线外,还有很多其他功能,本文介绍WPF使用DynamicDataDisplay快速实现示波器功能。

DynamicDataDisplay控件是一个功能很强的绘图工具,除了能生成曲线外,还有很多其他功能,具体见http://dynamicdatadisplay.codeplex.com/。这里你也能下载到其DLL文件。在项目中利用定时器产生数据,下面是我的示波器界面,暂时实现了开始,停止和清除功能:

     

    示波器添加了一个边框,途中模拟了两个通道,注意要添加相关引用,另外我还弄了一个渐变画刷,看起来是不是很漂亮,界面xaml代码: 

//添加引用
xmlns:d="http://research.microsoft.com/DynamicDataDisplay/1.0"

//添加资源
<RadialGradientBrushx:Key="ChartPlotterBrush" GradientOrigin="0.6,0.5">
<GradientStopColor="White" Offset="0"/>
<GradientStopColor="#FFEDFFFB" Offset="1"/>
</RadialGradientBrush>

//添加控件
<Border Margin="0,1,0,0" Grid.Row="0" Background="#FF5F5A5A">
<d:ChartPlotterName="plotter" Margin="5" Background="{StaticResource ChartPlotterBrush }"></d:ChartPlotter>
</Border>

  
  
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Data.OleDb; using System.Data; using System.Collections.ObjectModel; using System.Globalization; using System.IO; using System.Windows.Threading; using Microsoft.Research.DynamicDataDisplay; using Microsoft.Research.DynamicDataDisplay.DataSources; using System.Windows.Forms; namespace MotorDriver1 { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { private ObservableDataSource < Point > dataSource1 = new ObservableDataSource < Point > (); private ObservableDataSource < Point > dataSource2 = new ObservableDataSource < Point > (); private DispatcherTimer timer = new DispatcherTimer(); private LineGraph graphSin1 = new LineGraph(); private LineGraph graphSin2 = new LineGraph(); private int i = 0 ; public MainWindow() { InitializeComponent(); } private void OscilloscopeStart_Click( object sender, RoutedEventArgs e) { // plotter.AddLineGraph(dataSource, Colors.Green, 2); timer.Interval = TimeSpan.FromSeconds( 0.1 ); timer.Tick += new EventHandler(AnimatedPlot); timer.IsEnabled = true ; if (i == 0 ) { graphSin1 = plotter.AddLineGraph(dataSource1, Colors.Red, 2 , " Sin1 " ); graphSin2 = plotter.AddLineGraph(dataSource2, Colors.Black, 2 , " Sin2 " ); } plotter.Viewport.FitToView(); } private void AnimatedPlot( object sender, EventArgs e) { double x = i; double y1 = Math.Sin(i * 0.2 ); double y2 = 2 * Math.Sin(i * 0.6 ); Point point1 = new Point(x, y1); Point point2 = new Point(x, y2); dataSource1.AppendAsync( base .Dispatcher, point1); dataSource2.AppendAsync( base .Dispatcher, point2); i ++ ; } private void OscilloscopeStop_Click( object sender, RoutedEventArgs e) { timer.IsEnabled = false ; } private void OscilloscopeClear_Click( object sender, RoutedEventArgs e) { i = 0 ; timer.IsEnabled = false ; plotter.Children.Remove(graphSin1); plotter.Children.Remove(graphSin2); dataSource1 = new ObservableDataSource < Point > (); dataSource2 = new ObservableDataSource < Point > (); }
需要注意的就是清除示波器数据时,除了要用plotter.Children.Remove()指令,将此通道曲线移除,还要将数据源里数据移除。
  
  
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: wpfdemo 示波器是一种基于WPF(Windows Presentation Foundation)技术的示波器,它具备高性能、高可靠性、高精度等优点,能够在高速采样时展示出较为精确的波形图像。其兼容性强,能够在多种常用的操作系统中运行,具有较高的用户友好性。 wpfdemo 示波器的界面友好,易于操作,支持多种波形的显示方式,比如线状、点状、方形等等,用户可以根据需要灵活选择,同时还支持多种快捷键方便用户快速操作,从而提高数据采集和分析效率。此外,wpfdemo 示波器还支持多种信号过滤方式,如低通、高通、通、阻等,有效地抑制信号中的噪声。 相对于传统的示波器而言,wpfdemo 示波器不仅具有更高的精确度和分辨率,而且可以通过软件升级来不断增加新的功能,满足不同用户的需求。它还能够保存历史数据进行分析和比较,方便用户进行数据趋势分析和查看。 总之,wpfdemo 示波器是目前市面上比较先进和实用的示波器之一,它在性能、易用性、显示效果等方面都表现突出,得到了广大用户的认可和好评。 ### 回答2: WPFDemo 示波器是一种图形化界面示波器软件。该软件的主要功能是将模拟信号转换成数字信号,并在电脑上显示它们的波形。用户可以通过连接电脑和测量设备(如信号发生器、示波器、多功能测试仪等)来完成测试测量。 WPFDemo 示波器具有以下特点: 1. 功能丰富:用户可以选择不同的波形显示方式(如正弦波、方波、三角波等),设定采样率、触发方式、时间基准、通道设置等。 2. 操作便捷:该软件采用图形化界面,操作简单直观,即使对于初学者也能轻松上手。 3. 数据存储方便:用户可以将数据保存在电脑上,随时查看和比对,方便后续分析和处理。 4. 兼容性强:WPFDemo 示波器支持多种接口类型,兼容大部分的测量设备。 总之,WPFDemo 示波器通过图形化界面、丰富的功能、便捷的操作、方便的数据处理和兼容性强的特点,成为了一种很有用的示波器软件,为测试测量领域的专业人士和爱好者提供了更加便捷和出色的测试工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值