65.9K
CodeProject 正在变化。 阅读更多。
Home

UltraDynamo(第一部分)- 一切始于此!

starIconstarIconstarIconstarIconstarIcon

5.00/5 (9投票s)

2013 年 1 月 14 日

CPOL

6分钟阅读

viewsIcon

48779

downloadIcon

2308

在本节中,我们将探讨入门的基础知识。

Fork me on GitHub

注意 1:源代码标记为 V1.1+,因为它包含了 V1.1 版本中使用的代码以及一些仍在开发中但隐藏在后台的功能。

注意 2:用于代码签名的生成事件代码已被移除,因为它包含了我特定生成过程的路径和密码。文章后面会有关于生成事件代码的描述。

注意 3:Intel 于 2014 年 3 月 11 日关闭了其 AppUp 商店,因此从文章中移除了相关的下载链接。

目录

引言

本系列文章将成为 UltraDynamo 的新家。UltraDynamo 是我参加 CodeProject 主办的 Intel AppUp Ultrabook™ 竞赛(2012 年 10 月)的项目。竞赛的原始文章可以在 这里找到。

在本文中,我将带您了解应用程序开发的各个方面,并深入探讨代码中的一些细节。随着应用程序的不断开发(在时间允许的情况下!),我将把更改/更新以及任何新的有趣方面带回本文。

最初,这是一个很长的文章,但我决定将其拆分成功能性部分,因为它变得相当难以管理。随着应用程序的不断发展,更新相关部分将更加容易,也让生活更轻松一些。

什么是 UltraDynamo

UltraDynamo 是一款 Windows 桌面应用程序,它利用了下一代超极本中的各种传感器。这些传感器包括

  • 加速度计
  • 陀螺仪
  • 倾斜仪
  • 指南针
  • GPS
  • 环境光

该应用程序旨在为赛车运动爱好者提供一个滚动测功机环境,该环境可以使用传感器来确定其车辆的性能。从技术上讲,应该可以执行以下功能:

  • 反应时间计时器
  • 加速/制动计时器,例如 0 到 60 英里/小时,0 到 60 英里/小时再到 0
  • 距离计时器,例如四分之一英里
  • 功率计算,例如制动马力
  • 将数据映射到 GPS 位置并叠加到地图上(例如,谷歌地图)

然后,这些数据可以以各种格式呈现给用户,例如数字、图表、图片。

该应用程序完成了吗?

远未完成,这是一个非常耗时的项目。随着新功能的添加或现有功能的改进,我希望保持本系列文章的更新,并在 CodeProject 与社区分享源代码和编译后的应用程序。

我可以贡献、提出建议、报告问题吗?

当然可以,请使用 CodeProject 的消息功能在文章各部分的底部留下论坛消息。

但不要期望奇迹,时间有限,我还有很多其他事情要做。

我的开发环境

为了开发此应用程序,我使用了以下工具:

  • 主要开发机器:Windows 8 Pro 桌面电脑,无传感器,Visual Studio 2012 Pro
  • 次要开发机器:Windows 8 Pro 笔记本电脑,无传感器,Visual Studio 2012 Pro
  • 测试机器:Windows 8 Pro,配备传感器的超极本,Visual Studio 2012 Pro
  • 源代码存储库:运行 VisualSVN Server 的 Windows 2008 R2 服务器

我通过竞赛获得了这台超极本,因此在初始开发或传感器测试时没有它。这带来了有趣的变通方法,我将在后面介绍。为了管理所有机器,我使用 VisualSVN Server 作为托管在我的 Windows 2008 R2 虚拟机上的源代码存储库,服务器托管在 1&1。为了让 Visual Studio 2012 IDE 集成并与源代码存储库通信,我使用了 Visual Studio 的 ankhsvn 插件。在任何机器上编辑代码后,只需将任何代码更改提交,然后在其他机器上更新到最新版本即可。从单开发人员多机器的角度来看,这是管理源代码的一种非常好的方法。

UltraDynamo 应用程序是一款使用 Windows 窗体(Windows Forms)编写的 C# Windows 8 桌面应用程序。

要使用代码签名工具和访问传感器诊断工具等,您需要安装 Windows 8 软件开发工具包 (SDK)。您可以在 这里下载[^]。

准备 Visual Studio 2012

为 Windows 8 和 Windows 运行时 (WinRT) 进行开发时,首先要做的是对 Visual Studio 创建的项目文件进行一些修改。

首先要做的是创建一个新的 Windows 窗体 C# 应用程序,并将其目标定位到相关的 .NET Framework,在本例中是 .NET 4.5。

在此之后,您必须卸载项目。要执行此操作,请在解决方案资源管理器中右键单击项目并选择“卸载”

接下来,在 Visual Studio 中,右键单击项目并选择“编辑 insertyourprojectname.csproj”。

将新的 PropertyGroup 插入到主 Project 元素下方,如下所示:

保存更改,然后关闭编辑器窗口。接下来,在解决方案资源管理器中,重新加载项目

接下来我们需要做的是为 Windows 运行时和传感器库添加合适的引用。首先,在解决方案资源管理器中,在项目下,右键单击“引用”并选择“添加引用”。

最后,我们需要添加传感器库(Windows.Devices.Sensors.dll)和互操作库(System.Runtime.InteropServices.WindowsRuntime.dll)。再次重复“添加引用”过程,但这次选择“浏览”并导航到库的存储位置。有关路径,请参见下图:

外部控件

在上方的仪表板图像中,您会看到一些仪表盘。我没有太多时间去编写自己的控件或寻找不同的控件来尝试。幸运的是,我在 CodeProject 上找到了一个仪表盘控件。Ambalavanar Thirugnanam 已经编写了一个名为 Aqua Gauge 的控件并可供使用,它非常容易实现,并且是作为初始实现的一个很棒的控件。

控件的源代码被放入了我的应用程序中,并且根据需要保留了头部信息。

    /// Aqua Gauge Control - A Windows User Control.
    /// Author  : Ambalavanar Thirugnanam
    /// Date    : 24th August 2007
    /// email   : [email removed from article to protect from address sniffers]
    /// This is control is for free. You can use for any commercial or non-commercial purposes.
    /// [Please do no remove this header when using this control in your application.]

发布历史

  • V1.1 - 使用了改进的传感器管理器代码,为绘图部分添加了双缓冲,并重新安装了模拟器代码。反应计时器的第一个测试代码包含在源代码中,但用户无法使用。
  • V1.0 - 这是第一个匆忙发布的代码。它有闪烁的显示屏,模拟器代码被禁用并隐藏起来。

进入下一部分

在下一节中,我们将介绍传感器。

第二部分 - 一切都关乎传感器

© . All rights reserved.