【问题标题】:Reading raw data from Azure IoT hub trigger从 Azure IoT 中心触发器读取原始数据
【发布时间】:2021-09-08 07:34:42
【问题描述】:

我只想说我是 C# 和 Visual Studio 编程新手。

我有一个项目,我使用远程信息处理单元将传感器数据发送到我的 Azure IoT 中心。 我已经建立了连接,我正在尝试读取来自远程信息处理单元的原始数据。 我还使用 Azure 功能 IoT Hub Trigger v2 在 Visual Studio 中设置了 Azure IoT 中心触发器。

代码见下:


using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Azure.EventHubs;
using System.Text;
using System.Net.Http;
using Microsoft.Extensions.Logging;

namespace Teltonika_trigger_v3
{
    public static class Function1
    {
        private static HttpClient client = new HttpClient();

        [FunctionName("Function1")]
        public static void Run([IoTHubTrigger("messages/events", Connection = "EventHubConnection")]EventData message, ILogger log)
        {
            log.LogInformation($"C# IoT Hub trigger function processed a message: {Encoding.UTF8.GetString(message.Body.Array)}");
        }
    }
}

我正在使用 Teltonika 远程信息处理单元,我知道他们使用称为 Codec8 (https://wiki.teltonika-gps.com/view/Codec) 的特殊编码

最初我只是想读取发送到我的 IoT 中心的原始字节而不进行任何翻译,我该怎么做?

通过上面的代码,我得到了一些 very weird results

我尝试删除 Encoding.UTF8.GetString 部分,但这只是将数据显示为“System.Byte[]”。

如何读取进入我的 IoT 中心的原始数据?

【问题讨论】:

    标签: c# azure azure-iot-hub teltonika


    【解决方案1】:

    通过调用Encoding.UTF8.GetString(message.Body.Array),您是在告诉函数善意地获取这些字节并将它们视为 Unicode,因此会产生“奇怪的结果”。如果您只想将字节值作为文本获取,请查看this StackOverflow answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      • 2018-11-11
      • 1970-01-01
      相关资源
      最近更新 更多