我有一台Windows 8平板电脑。我正在.NET 4.5中开发WPF应用程序(即不是Modern,Windows Store应用程序)。
平板电脑将安装在卡车上,我需要获得平板电脑行进的速度。我目前正在使用Windows位置服务(System.Device.Location),但是API doesn't track speed,只是lat / lon坐标。我无法在一段时间内从坐标变化中插入速度,因为设备没有发出足够的读数以进行精确计算。
我知道如果我正在开发一个Modern应用程序,我可以使用System.Device.Sensors framework,但这似乎不适用于WPF应用程序。
有谁知道如何在WPF应用程序中访问加速计传感器?我更喜欢.NET解决方案,但如果必须,我会考虑本机解决方案。
答案 0 :(得分:2)
您无法使用加速计读数来准确计算速度,因为如果您错过了数值或获得了错误的读数或错过了相等和相反的力,您可能会漂移。例如。用户意外地踢了平板电脑,所以你读取了一个巨大的加速度峰值,但由于采样频率而错过了减速度,所以现在你认为即使你没有,也要加速高速公路。基本上,您无法根据加速度计读数获得可靠的速度计算。
您应该继续使用Windows位置服务并进行采样。然后根据您所在位置的最后(x)个样本计算速度的移动平均值。如果您启用了GPS,位置服务将使用GPS,因此在一段时间内,例如几秒钟,您可能能够计算出足够准确的速度。我不知道有多少秒的采样时间可以为您的速度计算提供良好的平均值,但您可以尝试查看最佳效果。