2014-09-11 44 views

回答

0

您可以訪問使用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你應該有伽利略上的一個簡單的REST客戶端工作!

+0

我剛剛開始與Arduino和我因爲微軟參與。目前的文檔缺乏,所以我找不到 - 瞭解如何在主板上運行node.js腳本。我在哪裏部署它? – 2014-09-16 02:20:50

+0

最近的伽利略更新可能已經安裝了nodejs。你可以在命令行上運行「node -v」,它是否顯示版本信息。如果有效,[安裝此NodeJs REST客戶端庫並嘗試該示例](https://github.com/danwrong/restler)。 – ashoke 2014-09-16 02:35:53

+0

不幸的是它沒有安裝。我試圖安靜地安裝它,但這個版本的Windows沒有msiexec,所以安靜的msi安裝失敗,並且節點js的二進制文件無法運行。 – 2014-09-16 03:22:20

2

如果您還沒有傾向於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伽利略SDK在過去的幾個月裏,所以我懷疑正在努力端口WebClient和以太網庫。密切關注GitHub頁面。

1

有一個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存儲構建應用程序。

但是,如果你想在伽利略上使用它,你將會遇到一些問題。如果你想知道如何避免/解決方法的問題,你可以在我的博客上找到整個說明 http://kardum.net/iot/intel-galileo-windows-application-azure-storage/

我希望這會幫助你。 最好的問候, 伊凡