2

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

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

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

4

3 回答 3

2

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

GitHub 上的ms-iot 示例应用程序页面最近更新,引用了MSDN 上的 WinSock 示例。我对 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 页面。

于 2014-10-07T22:11:26.870 回答
1

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

如果要使用 Casablanca 通过 REST 访问 Azure,GitHub 上有一个库:Azure Storage Client Library for C++。它允许您针对 Microsoft Azure 存储构建应用程序。

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

我希望这能帮到您。最好的问候,伊万

于 2015-01-14T09:04:43.577 回答
0

您可以使用Arduino HTTP 客户端访问 REST 服务。

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

要安装nodejs,只需直接下载windows x32 二进制文件,无需正式安装。还要下载最新的npm.zip并解压到具有node.exe.

现在您已经准备好使用restlerREST 客户端库...只需安装npm install restler

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

于 2014-09-15T20:49:09.647 回答