Подключение к службе REST с использованием сборки Intel Galileo для Windows
Как я могу подключиться к службе REST, используя плату Intel Galileo?
Мне нужно решение, чтобы быть автономным от клиента ПК.
Пока есть доступ в Интернет через Ethernet или Wi-Fi, код будет выполняться
3 ответа
Если вы еще не склонялись к проекту Node, самым простым решением было бы использование Win32 API.
Страница ms-iot Sample Apps на GitHub была недавно обновлена со ссылкой на образец WinSock на MSDN. Я внес несколько изменений в пример кода клиента WinSock для публикации данных в Cosm (теперь Xively), который использует REST API.
Соответствующие изменения в коде клиента 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 и Ethernet. Следите за страницей GitHub.
Доступен C++ SDK, который позволяет вызывать службы REST. Это C++ REST SDK (кодовое название Casablanca). Это библиотека от Microsoft, опубликованная как проект с открытым исходным кодом на CodePlex. На данный момент только версия 2.2. можно использовать на Galileo. Инструкции по его использованию находятся здесь: http://ms-iot.github.io/content/Casablanca.htm
Если вы хотите получить доступ к Azure через REST с помощью Casablanca, на GitHub есть библиотека: клиентская библиотека хранилища Azure для C++. Это позволяет создавать приложения на основе хранилища Microsoft Azure.
Но, если вы хотите использовать его на Galileo, у вас будут некоторые проблемы. Если вы хотите узнать, как избежать / обойти проблемы, вы можете найти всю инструкцию в моем блоге http://kardum.net/iot/intel-galileo-windows-application-azure-storage/
Я надеюсь, что это поможет вам. С наилучшими пожеланиями, Иван
Вы можете получить доступ к службе REST, используя HTTP-клиент Arduino.
Другой вариант - установить nodejs на плате Galileo и использовать клиентские библиотеки REST или HTTP на основе nodejs.
Чтобы установить nodejs, просто скачайте двоичный файл Windows x32 напрямую, формальная установка не требуется. Также загрузите последниеnpm.zip
и распаковать в ту же папку, которая имеет node.exe
,
Теперь вы можете использовать restler
Клиентская библиотека REST... просто установите с npm install restler
В конце страницы рестлера есть пример, скопируйте и вставьте в rest_test.js и запустите node rest_test.js
у вас должен быть простой REST-клиент на Galileo!