如何在通用Windows应用程序

时间:2016-10-25 19:01:26

标签: c# raspberry-pi uwp windows-10-iot-core azure-iot-hub

我有一个通用的Windows应用程序部署到带有Windows iOT Core的Raspberry PI 3,PI 3可以连接许多传感器,因此这些传感器需要在Azure IOT Hub中注册,为此我注册它们手动使用Device Explorer,然后在我创建的XML文件上,我将设备密钥和其他配置设置。

通过这种方式,PI可以使用配置文件中的DeviceKey和传感器读取,然后将数据发送到IOT HUB。

一块蛋糕它工作正常。

但是我不知道这种配置方式是否是通用Windows应用程序的最佳实践,首先,我不知道如何在安装包之前编辑该XML文件,或者在安装之后我不知道在哪里找到在应用运行之前编辑并编辑它。

问题很简单:这是最佳做法吗?如果是,我如何在部署之前编辑该文件,请记住,相同的应用程序将安装在100个设备上,XML文件将有所不同,如果不是,那么最佳做法是什么?

3 个答案:

答案 0 :(得分:4)

我的做法是:

我将在RPI3的UWP应用程序中嵌入“注册功能”,当应用程序启动时,它将检测设备密钥是否在本地保存,如果不是,它将初始化注册过程,否则它将继续它应该正在做。

我将在UWP应用程序中嵌入注册的一般信息,当进程被触发时,它将连接到Azure IoT Hub以检索设备列表,并随机(不是随机)生成“devicename”和“devicekey”,使用Azure IoT Hub注册新生成的设备。请记得在RPi3中保存“devicename”和“devicekey”,以便与设备通信。

我再做了一步,我将为RPi3设置一个UI,当我将RPi3连接到显示器时,我可以选择“重置”设备,因此它将“删除”和“取消注册”本身来自Azure IoT Hub,并重新启动注册过程。

希望这会有所帮助。

答案 1 :(得分:3)

使用 TPM 获取安全/凭据,因为一旦在设备上配置了连接凭据,就会从设备中提取连接凭据,而无需任何特定于设备的编码(即没有连接字符串)。 例如,在此视频的大约一半: Channel9

答案 2 :(得分:1)

我同意@ Snake Chia

也许你可以尝试这种做法:

在IOT HUB中共享一台设备,您只需要一组配置设置,因此在部署应用程序时无需编辑配置文件。使用消息的一个数据字段来区分不同的传感器。在Azure方面,Azure Stream Analytics可以帮助您process data from sensor devices