January 2nd, 2015

Веб-интерфейс для Сервера Роботов: веб-приложение на Scala+Unfiltered

Продолжаем делать веб-интерфейс для Сервера Роботов.

В прошлый раз мы доработали управляющий сервер (Сервер Роботов2) так, чтобы он научился принимать команды для подключенных к нему роботов программно через отдельный сокет, а не через консольное приглашение для ввода с клавиатуры, как было сделано в первой версии. Мы также посмотрели, как можно писать веб-приложения на языке Scala с использованием фреймворка Unfiltered и запускать его в облаке. Сейчас напишем веб-приложение на Scala+Unfiltered, которое позволит пользователю через интернет включать и выключать лампочку на плате ChipKIT WF32, подключенной к Серверу Роботов, нажимая кнопки в браузере.


Сервер Роботов: управление роботом-с-лампочкой через веб from 1i7 on Vimeo.

Человек нажимает кнопку (включить лампочку) в браузере, кнопка (через Http-запрос с JavaScript) отправляет команду (включить лампочку) веб-приложению, веб-приложение переправляет команду (включить лампочку) Серверу Роботов, Сервер Роботов отправляет команду (включить лампочку) подключенному роботу, робот выполняет команду (включает лампочку) и отправляет ответ (ok) Серверу Роботов, Сервер Роботов переправляет ответ (ok) веб-приложению, веб-приложение возвращает ответ (ok) в браузер, JavaScript в браузере отображает ответ (рисует картинку с включенной лампочкой), человек видит результат нажатия кнопки (картинку с включенной лампочкой).

Финальный результат онлайн: http://robotc.lasto4ka.su/
Еще финальный результат (+веб-камера с творчески доработанной инсталляцией, в базовую инструкцию не включены): В глубинах океана

Исходники
1) Управляющее веб-приложение: chipkit-cloud-wifi/ScalaUnfilteredWebFrontend
2) Сервер Роботов2: chipkit-cloud-wifi/JavaTcpServerMaster/src/main/java/edu/nntu/robotserver/RobotServer2.java
3.1) Робот с лампочкой на ChipKIT: chipkit-cloud-wifi/chipkit_tcp_client_slave2/chipkit_tcp_client_slave2.pde
3.2) Робот с лампочкой на Android: chipkit-cloud-wifi/AndroidTcpClientSlave
3.3) Условный робот на Java: chipkit-cloud-wifi/JavaTcpServerMaster/src/main/java/edu/nntu/robotserver/RobotClient2.java

Collapse )

исходники занятия, подсветка синтаксиса