如何在Linux 上运行 SciChart WPF图表控件?

SciChart – 一个跨平台图表库,可实现 Windows Presentation Foundation (WPF)、JavaScript 以及原生 iOS (Swift/Objective-C) 和 Android (Java/Kotlin),基于代号为 Visual Xccelerator® 的专有 C++ 渲染引擎。这提供了 SciChart 众所周知的速度和性能,但另一个好处是,该引擎跨平台提供单一共享代码库,用于绘制高性能科学、金融和医疗图表和图形,并在 DirectX、OpenGL、Metal 和 WebGL 中提供硬件加速。

到目前为止,还没有可以在 Qt 中运行的纯 C++ 版本的 SciChart,但是,我们一直在努力为 SciChart 提供 Linux 支持。

SciChart 获取   

为什么在 Linux 上使用 SciChart?

WPF 应用程序通常是 Windows 应用程序,因为它们需要 Microsoft .NET 和 Windows Presentation Foundation 才能运行。但是,一部分要求极高的科学、金融或医疗应用程序需要在 Linux 上运行图表。这可能适用于:

  • 嵌入式系统
  • 定制便携式硬件
  • 电子测试设备
  • 射频或频谱分析仪
  • 示波器
  • 工厂、工业流程或石油钻井平台中的终端或信息亭
  • 船舶仪表
  • 飞机仪表

通过在嵌入式系统上运行 Linux,嵌入式设备制造商的成本基础将大幅下降,因为他们无需支付 Windows 许可证费用。

此外,Linux 的 RTOS(实时操作系统)特性使其非常适合需要高性能、大数据或实时图表的高性能关键嵌入式系统。

WPF 可以在 Linux 上运行吗?

微软于 2014 年推出了 .NET Core,后来被 .NET 取代,旨在成为 .NET Framework 的跨平台实现。众所周知,C# 代码和 .NET 多年来一直能够在 Linux(和 macOS)上运行,但 WPF 呢?

据微软官方消息,WPF 仅适用于 Windows,因为该框架的这一部分并未移植到 Linux。然而,Avalonia 的天才们却取得了惊人的成就:他们成功制作了一个完全跨平台的框架,名为 Avalonia XPF,这是 Windows Presentation Foundation 的一个版本,使用 OpenGL 而不是 DirectX 运行。

什么是 Avalonia XPF?

Avalonia XPF 是 Windows Presentation Foundation (WPF) 的专有跨平台实现,由 Avalonia UI 的开发人员为您带来。这使旧版和现有应用程序能够完全兼容 WPF,但允许它们在 Windows、Linux 和 macOS 上运行。它通过将 WPF 中的 DirectX 和 MilCore Windows 特定函数和例程替换为 OpenGL 和 C++ 中的等效函数和例程来实现这一点。结果是,现有的 WPF 应用程序可以移植到 Linux 上运行,通常无需任何代码更改,只需几分钟即可完成。

对于拥有大型 WPF 应用程序并希望针对多个平台的团队来说,这可以节省大量时间,这一点怎么强调也不为过。

为 Avalonia XPF 引入 SciChart

SciChart 已经与 Avalonia 团队合作了一段时间,为您带来了可在 Linux 上运行的与 Avalonia XPF 兼容的 SciChart WPF 版本。

以下是我们所做的以及我们的做法:

  • 我们的 C++ Visual Xccelerator® 引擎已重新定位到 Linux,并使用 CMake 进行编译
  • 我们已经替换了 SciChart 中的所有 DirectX 渲染,以便根据平台动态选择 DirectX 或 OpenGL。
  • 我们为 SciChart WPF 构建了一个并行解决方案,它将针对 Avalonia XPF 以及现有的 .NET Framework、.NET 6、7、8 等运行……
  • 示例应用程序和演示都已在新环境中测试。

需要说明的是,我们几乎无需对 SciChart WPF 本身进行任何代码更改,也 无需对 API 进行任何更改。这是一个完全 100% 兼容的 SciChart 版本,当针对 Avalonia XPF 时,它可以在 Linux 上神奇地运行。

早期预览 – Linux 上的 XPF 版 SciChart

下面是在 Linux 上运行的 Avalonia XPF 的 SciChart 的视频。

我们正在使用 Visual Studio Code 编译示例/演示应用程序,并在 Ubuntu VM 中运行一些示例。

值得注意的是,这是与 Windows 版 SciChart WPF 完全相同的代码和 API,这意味着当针对 Avalonia XPF 时,您的 Windows 应用程序将兼容并能够在 Linux 上运行。

第一个演示是 Spectrogram(频谱分析仪)演示,展示了 SciChart 在 Linux 上实时图表的实时功能,接下来是 ECG Monitor 演示,这是一个实时医疗生命体征监测器。

然后,我们展示了数字分析仪性能演示 - 这是一个大数据演示,它加载了多个数字数据通道,每个通道有数百万(甚至数亿)个数据点。这对于创建逻辑分析仪硬件很有用。

在撰写本文时,所有 2D 示例均已启用。3D 图表和示例也可用,但在发布之前我们还需要解决一两个错误。

以下是使用 Avalonia XPF 在 Linux 上运行的 SciChart WPF 的更多屏幕截图。

SciCharts 垂直堆叠 YAxis ECG 图表在 Linux 软件上显示

SciCharts 垂直堆叠 YAxis ECG 图表在 Linux 软件上显示

SciCharts 垂直堆叠 YAxis ECG 图表在 Linux 软件上显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值