【问题标题】:Connecting to a REST Service using the Intel Galileo Windows build使用 Intel Galileo Windows 构建连接到 REST 服务
【发布时间】:2014-09-11 04:16:01
【问题描述】:

如何使用英特尔 Galileo 开发板连接到 REST 服务?

我需要独立于 PC 客户端的解决方案。

只要有通过以太网或 Wi-Fi 访问互联网,代码就会执行

【问题讨论】:

    标签: windows intel intel-galileo iot windowsondevices


    【解决方案1】:

    如果您还没有倾向于 Node 项目,最直接的解决方案是使用 Win32 API。

    最近更新了ms-iot Sample Apps page on GitHub,引用了WinSock sample on MSDN。我对 WinSock 客户端示例代码进行了一些更改,以将数据发布到使用 REST API 的 Cosm(现在为 Xively)。

    Winsock客户端代码的相关改动有:

    // replace nnnnn with your Feed ID, and xxxxxxxxxxx with your API key!
    char *sendbuf = "PUT /v2/feeds/nnnnn.csv HTTP/1.1\r\nHost: api.cosm.com\r\nX-ApiKey: xxxxxxxxx\r\nUser-Agent: WinGalileo\r\nContent-Length: 18\r\nContent-Type: text/csv\r\nConnection: close\r\n\r\n";
    char *databuf = "GalileoTest,123.45\r\n";
    . . .
    iResult = getaddrinfo("www.cosm.com", 80, &hints, &result);
    . . .
    // Send the HTML
    iResult = send(ConnectSocket, sendbuf, (int)strlen(sendbuf), 0);
    . . .
    // send the data
    iResult = send(ConnectSocket, databuf, (int)strlen(databuf), 0);
    

    在过去的几个月里,Arduino 库已添加到 ms-iot Galileo SDK 中,因此我怀疑正在努力移植 WebClient 和以太网库。密切关注 GitHub 页面。

    【讨论】:

      【解决方案2】:

      有一个可用的 C++ SDK 可以调用 REST 服务。它是 C++ REST SDK(代号 Casablanca)。它是 Microsoft 的一个库,作为 CodePlex 上的开源项目发布。 目前只有 2.2 版。可以在伽利略上使用。使用说明在这里:http://ms-iot.github.io/content/Casablanca.htm

      如果您想使用 Casablanca 通过 REST 访问 Azure,GitHub 上有一个库:用于 C++ 的 Azure 存储客户端库。它允许您针对 Microsoft Azure 存储构建应用程序。

      但是,如果你想在 Galileo 上使用它,你会遇到一些问题。如果您想知道如何避免/解决问题,您可以在我的博客上找到整个说明 http://kardum.net/iot/intel-galileo-windows-application-azure-storage/

      我希望这会对你有所帮助。 最好的祝福, 伊万

      【讨论】:

        【解决方案3】:

        您可以使用 Arduino HTTP client 访问 REST 服务。

        另一种选择是在 Galileo 板上安装 nodejs,并使用基于 nodejs 的 REST 或 HTTP 客户端库。

        要安装nodejs,只需download the windows x32 binary directly 不需要正式安装。还有download the latest npm.zip 并解压到与node.exe 相同的文件夹中。

        现在您已准备好使用restler REST client library...只需安装npm install restler

        restler 页面末尾有一个示例,复制粘贴到 rest_test.js 并运行 node rest_test.js 你应该有一个在 Galileo 上工作的简单 REST 客户端!

        【讨论】:

        • 我刚开始使用 Arduino,并且因为微软而参与其中。目前缺少文档,因此我无法找到-了解如何在板上运行 node.js 脚本。我在哪里部署它?
        • 最近的 galileo 更新可能已经安装了 nodejs。你能在命令行上运行“node -v”吗,它会显示版本信息吗?如果可行,install this nodejs REST client library and try out the example.
        • 很遗憾,它没有安装。我尝试静默安装,但是这个版本的 Windows 没有 msiexec,所以安静的 msi 安装失败,并且 node js 的二进制文件无法运行。
        • 看起来像visual studio supports arduino programming for galileo。如果您对 c/++ 感到满意,我会尝试 Arduino HTTP client。里面有一个例子,你可以测试一下。我不确定VS是否支持导入库,只需尝试将那些HTTP客户端源文件直接添加到您的项目中。
        • Sample/Walkthrough for Firmata and Cylon 暗示可以安装 Node.js - 但没有说明如何安装。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-13
        • 2016-03-26
        • 1970-01-01
        • 1970-01-01
        • 2014-04-29
        • 2014-12-22
        • 1970-01-01
        相关资源
        最近更新 更多