问题描述
我想构建一个labview应用程序启动器,它可以检查主应用程序版本并最终下载和更新存储在我的onedrive中甚至以某种方式在azure中的.exe文件。
我说 azure 是因为我认为它必须有一个选项......但我无法获得正确的关键字
有人可以分享一些技巧吗?
解决方法
LabVIEW 作为一个更高级别的应用程序的好处是它让您可以访问这个小 vi:
这是 System Exec VI,它允许您从 LabVIEW 中运行通用命令行脚本。因此,如果您可以找到强制同步的 Windows 命令或 batch file,那么您可以与外部程序交互。 那里的示例批处理文件应该可以与 OneDrive 一起使用,但稍微搜索一下,您应该能够找到可以与 Azure 一起使用的内容。
附言查看 LabVIEW 中的“Command Line Execution.vi”示例,了解有关此 vi 工作原理的更多信息。
,我编写了类似的代码,用于从 AWS S3 下载和安装新版本。这是一个真正的节省时间,值得努力工作。
我没有与 OneDrive 进行过交互,但从文档来看,它看起来比 AWS S3 容易一些,因为 Microsoft accepts OAuth2 tokens 与更复杂的 AWS Signature Version 4。如果您使用 LabView,则需要使用 HTTP 客户端功能与远程服务交互。我建议从 JKI HTTP REST API client toolkit 开始。该工具包通过维护连接池来解决 HTTPClient:OpenHandle 函数中的一个缺陷(它是全局阻塞的!)。
微软的文档看起来不错;基本上你要做的是打开一个到授权端点的 HTTP 会话,请求一个访问令牌,关闭 HTTP 会话,打开一个到 OneDrive 端点的 HTTP 会话,将令牌格式化为 Authorization: bearer
标头,添加标头会话,提交 list file request,找到您的文件,提交 download request,将输出保存到文件,关闭 http 会话。
在此过程中,您需要解析 API 的 JSON 响应。由于 NI 的内置 JSON 解析器相当不灵活,我推荐 JKI JSON。这两种 JKI 工具都可以通过 VIPM 轻松安装,后者在最新版本的 LabView 中默认安装。