我在 Windows Phone 8.1 上使用 Microsoft Band of development。试图弄清楚紫外线传感器的全部功能。我找到了几个例子,可以找到紫外线水平。他们表明可以使用枚举:
namespace Microsoft.Band.Sensors
{
public enum UVIndexLevel
{
None = 0,
Low = 1,
Medium = 2,
High = 3,
VeryHigh = 4,
}
}
还想知道,这些枚举的规模是多少。据我所知,用户界面有 0 到 11+ 个级别。这些枚举是什么范围?
我基本上使用代码行:
{
bandClient.SensorManager.UV.ReadingChanged += Ultraviolet_ReadingChanged;
await bandClient.SensorManager.UV.StartReadingsAsync();
*Later on code*
await bandClient.SensorManager.UV.StopReadingsAsync();
bandClient.SensorManager.UV.ReadingChanged -= Ultraviolet_ReadingChanged;
}
异步方法:
async void Ultraviolet_ReadingChanged(object sender, BandSensorReadingEventArgs<IBandUVReading> e)
{
IBandUVReading ultra = e.SensorReading;
UVIndexLevel potatoUV = ultra.IndexLevel;
}
但由于某种原因,我大部分时间都没有得到索引。在阳光直射下,我有时会得到大约 800 万到 1000 万(或数千)的读数。值在“int”中(尽管有时会给出枚举)。我对如何测量它很感兴趣。另外,它到底在读什么紫外线?我知道有很多种紫外线照射。但是我怎样才能使用这些数据呢?如果它是一个范围,那么也许我可以输入一个范围值,但我需要以某种方式对其进行采样,它具有什么 UV 指数并将该信息提供给用户。并在以后的计算中使用该索引。
还... 我碰巧遇到了一个错误。在测试紫外线时,当我站在直射光下时,读数没有显示。只有当我移动到另一个 UV 级别时,它才会改变(但永远不会回到第一个)。但似乎第一次阅读要么没有改变(因为方法是“readingchanged”)或者是默认位置。不管这有多大意义。有没有办法在按钮点击时调出读数?
如果需要,我可以搜索我使用的示例,以获取代码的模式深度。但大部分都在这里。