我已将我的第一个IoT Edge设备成功部署到Azure IoT中心。边缘设备是Ubuntu 16.04,我使用以下链接作为指南https://docs.microsoft.com/en-us/azure/iot-edge/quickstart-linux
该链接使用tempSensor生成实时流数据。
在我的Ubuntu上,我使用以下链接http://acesinc.net/introducing-a-streaming-json-data-generator/
安装了json的实时事件流生成器。当我查看日志时,可以在Ubuntu计算机上看到事件,我可以从tempSensor中看到日志,但是看不到流事件生成器中的事件。
问题是我可以从tempSensor中看到日志(正在生成流量),但是看不到实时流量所产生的流量。
我做了一些研究,发现为了将事件发送到边缘集线器,我需要创建一个自定义模块来接收消息并将其发送到边缘集线器。因此,我需要将流生成器修改为模块SDK以发送数据。建议我在以下链接中遵循该指南:
https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-csharp-module
现在,问题在于链接的指南基于使用基于tempSensor的数据生成器的模拟IoT边缘设备。而我的Ubuntu使用完全不同的生成器。因此,我仅尝试了我认为可以使我的Ubuntu将事件发送到IoT Edge集线器的指南。
我的配置如下:
命名空间mycsharpmodule4 { 使用System.Collections.Generic; //对于KeyValuePair <> 使用Microsoft.Azure.Devices.Shared; //用于TwinCollection 使用Newtonsoft.Json; //对于JsonConvert 使用系统; 使用System.IO; 使用System.Runtime.InteropServices; 使用System.Runtime.Loader; 使用System.Security.Cryptography.X509Certificates; 使用System.Text; 使用System.Threading; 使用System.Threading.Tasks; 使用Microsoft.Azure.Devices.Client; 使用Microsoft.Azure.Devices.Client.Transport.Mqtt;
class MessageBody { public Machine machine {get;set;} public Ambient ambient {get; set;} public string timeCreated {get; set;} } class Machine { public double temperature {get; set;} } class Ambient { public double temperature {get; set;} public int humidity {get; set;} } }
请注意,我已遵循指南中的所有内容: https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-csharp-module
当我尝试通过运行命令“ Build IoT Edge Solution”来构建代码时,出现以下错误:
CSC:错误CS5001:程序不包含适用于入口点的静态“ Main”方法[C:\ app \ mycsharpmodule4.csproj] 命令“ cmd / S / C dotnet publish -c Release -o out”返回非零代码:1
请参见图像以获取Visual Studio Code中错误的完整视图。
有人可以让我知道我要去哪里了吗
我在Stack Exchange上检查了类似的问题,并且遇到了
How to send data from a device to IOT HUB?。但是,我无法使其适合我。
我已经在这里待了将近7天,我将要放弃。
任何帮助将不胜感激
保罗