0

我目前借助以下序列化的类通过 EventHub 将数据发送到时序洞察JSON

public class DataItemBase
{
    public string VariableName { get; set; }
    public string SystemId { get; set; }
    public string DeviceTimestamp { get; set; }
}

public class DataItemDouble : DataItemBase
{
    public double Value { get; set; }
}

public class DataItemBool : DataItemBase
{
    public bool Value { get; set; }
}

数据接收正常,并且在 is 时很容易value查询double。但是,当数据以boolean. 值列标记为 (T/F),这似乎表明 TSI 正确理解接收到的数据格式。 接收到的布尔数据

问题是,如何在 TSI 在线查看器上显示此布尔数据?作为参考,这是 Microsoft 的 Contonso 示例环境的链接:https ://insights.timeseries.azure.com/preview/samples

我怀疑这完全取决于在环境中为实例分配正确的类型。我创建了DeviceData分配给 TSI 实例的类型。此DeviceData类型有一个名为NumericData的属性,并带有$event['value'].Double定义。这可以按预期工作,但是我似乎没有为这些boolean值找到类似的解决方案。

4

1 回答 1

1

在 TSI Explorer 中只能绘制数字数据,因此为了显示带有布尔值的图表,您可以在时间序列表达式中创建一个带有转换函数的 Type 变量,以将 bool 转换为 long 或 doubletoDouble($event.value.Bool)

您可能希望创建一个分类变量以标记 True/False 并选择自定义颜色

"Status": {
"kind": "categorical",
  "value": {
 "tsx": "toLong($event.value.Bool)"},
  "interpolation": {
    "kind": "step",
    "boundary": {
      "span" : "PT1M"
    }
  },
  "categories": [
    {
      "values": [0],
      "label": "False"
    },
    {
      "values": [1],
      "label": "True"
    }
  ],
  "defaultCategory": {
    "label": "Not Applicable"
  }
}
于 2020-10-12T20:39:15.923 回答