190 lines
24 KiB
Markdown
190 lines
24 KiB
Markdown
![Logo](admin/vis.png)
|
||
yunkong2.vis.cordova
|
||
============
|
||
|
||
WEB визуализация для платформы yunkong2 как приложение для мобильных устройств.
|
||
|
||
Это приложение разработано для мобильных телефонов и планшетов и оно сохраняет все данные проекта и все картинки из проекта локально на устройстве и экономит таким образом мобильный трафик.
|
||
|
||
## Использование
|
||
Это приложение не может работать самостоятельно и требует предустановленный yunkong2 с настроенными и активированными драйверами vis и web (или socket-io).
|
||
При использовании только web драйвера в связке с vis требуется активированная настройка внутреннего socket-io.
|
||
Также проект vis тоже должен существовать, например "main".
|
||
|
||
Порты и сервер yunkong2 должны быть доступны с телефона и не заперты за файерволом.
|
||
|
||
Приложение можно установить с [App Store](https://play.google.com/store/apps/details?id=net.yunkong2.vis&hl=ru)
|
||
После установки и первого запуска приложения должно автоматически открыться меню настроек. Что бы начать работать с приложением необходимо произвести минимальные настройки.
|
||
|
||
Что бы позднее вызвать меню настроек нужно нажать на полупрозрачную кнопку в верхнем левом углу.
|
||
![Настройки](img/menu.png)
|
||
|
||
## Настройки
|
||
Почти все настройки необязательны за исключением "WiFi соединения" and "Проекта".
|
||
|
||
### Кнопки
|
||
- *Обновить* - Просто загружает страницу заново, как будто в браузере нажали на кнопку "обновить".
|
||
- *Синхр.* - если vis проект изменился, то обновления **не** будут загружены с сервера автоматически. Для синхронизации данных проекта с сервером необходимо нажать кнопку *Синхр.*. Все данные и картинки (а также шрифты и аудио-файлы) будут загружены с сервера заново. Это делается для последующей экономии траффика и ускорения загрузки проекта, т.к. загрузить файл с внутренней памяти гораздо быстрее, чем с удаленного сервера.
|
||
- *Ok* - сохранить все изменения и обновить страницу. Синхронизации с сервером не происходит, ести только не поменялось имя проекта. Что бы загрузить изменения с сервера используйте кнопку *Синхр.*.
|
||
- *Отмена* - отменить все изменения и закрыть диалоговое окно настроек.
|
||
|
||
### Соединение
|
||
Приложение может с помошью имени WiFi сети распознать в какой сети находится телефон, в домашней (обычно без пароля) или нет (с паролем) и использовать разные настройки для подключения.
|
||
Обычно в домашней сети не используется защищённое соединение и пароль и наоборот за пределами домашней сети не желательно использовать соединени без пароля и без SSL.
|
||
|
||
- *Соединение* - показывает состояние соединения: есть ли связь с yunkong2 сервером.
|
||
- *WIFI Имя сети (SSID)* - имя или имена (через запятую) беспроводных сетей, которые будут идентифицироватся, как домашняя сеть, что бы использовать соответствующие настройки для соединения.
|
||
- *WIFI Socket URL* - URL вида ```http://192.168.0.5:8082```. Важно иметь в начале строки http или https, таким образом приложение решает какое соединение использовть: защищенное или нет. Порт также важен. Обычно значение порта 8082 для драйвера *web* или *8084* для отдельного драйвера socketio.
|
||
- *WIFI Пользователь* - если включена аутенфикация пользователя, необходимо ввести имя пользователя с сервера yunkong2. Имя пользователя должно быть предварительно создано через интерфейс администратора. Пользователь "admin" существует всегда и не может быть удалён.
|
||
- *WIFI Пароль* - пароль пользователя заданный в yunkong2
|
||
- *WIFI Повтор пароля* - повтор пароля
|
||
|
||
Следующие настройки активны только если задано имя домашней беспроводной сети и устройство находится вне домашней сети.
|
||
- *Мобильный Socket URL* - тоже самое, что *WIFI Socket URL*, только для внешней сети.
|
||
- *Мобильный Пользователь* - тоже самое, что *WIFI Пользователь*, только для внешней сети.
|
||
- *Мобильный Пароль* - тоже самое, что *WIFI Пароль*, только для внешней сети.
|
||
- *Мобильный Повтор пароля* - тоже самое, что *WIFI Повтор пароля*, только для внешней сети.
|
||
|
||
*Заметка*: Файл глобальных стилей CSS не обрабатывается. По этому, если есть настройки в CSS для конкретного проекта, необходимо скопировать эти стили в проектный CSS файл.
|
||
|
||
### Имя проекта и язык
|
||
- *Язык* - язык настроек. Поддерживаются английский, немецкий и русский языки. Для перенятия настроек нужно нажать *OK*.
|
||
- *Проект* - имя проекта с yunkong2 сервера. Если имена не показываются, это охначает, что соединение с сервером отсутствует или нет ни одного проекта.
|
||
|
||
### Отображение и поведение
|
||
- *Ориенитация* - Ориентация страницы: **авто**, **горизонтальная** or **портретная**. Если выбрано **авто*, то ориентация выбирается в зависимости от положения устройства.
|
||
- *Не засыпать* - устройство не переходит в спящий режим и дисплей не гаснет если активирована эта функция. (Работает не на всех телефонах.)
|
||
- *Разрешить сдвиг окна* - позволяет изменять масштаб и передвигать страницу.
|
||
- *Полноэкранный режим* - включает полноэкранный режим на устройствах без настоящих кнопок "домой", "назад", "настройки".
|
||
- *Зум при верт. положении* - масштаб в процентах для портретной ориентации. Не устанавливайте масштаб слишком маленьким, иначе будет невозможно нажать на кнопку настроек. Значение по умолчанию 100% и нельзя выставить значение меньше 20%.
|
||
- *Зум при гор. положении* - тоже самое, что *Зум при верт. положении* только для горизонтального положения.
|
||
|
||
### Другие настройки
|
||
- *Замена URL* - если ваш vis проект содержит ссылки на изображения с локального сетевого URL, но отличного от yunkong2 URL, то вы можете прописать здесь этот URL и все изображения с этого сервера, которые используются в vis проекте, будут тоже загружены на мобильный телефон.
|
||
- *Идентификатор* - Уникальный ID этого VIS проекта на конкретном мобильном устройстве, если необходимо посылать команды только на этот vis проект. (Описание команд можно найти здесь [Команды интерфейса](#контрольный интерфейс))
|
||
- *Спать, если не активно* - Если vis приложение не показано (но бежит в фоне), то можно прекратить любую коммуникацию vis приложения с yunkong2 сервером. В этом случае изменения состояний и команды от yunkong2 не будут доставлены приложению, если приложение бежит в фоновом режиме.
|
||
- *Не кешировать файлы* - Не сохранять никакие конфигурационные файлы на телефоне и всё скачивать с сервера каждый раз.
|
||
|
||
### Распознавание речи
|
||
Вы можете активировать распознавание речи из приложения. Если эта функция активирована, то приложение будет постоянно пытается распознавать команды. Чтобы определить, говорите ли вы с приложением или с кем-нибудь еще, необходимо указать ключевое слово или фразу.
|
||
Выберите такое слово, которое может быть хорошо распознано и не используется в повседневном быте.
|
||
|
||
Для распознавания команд из текста используется драйвер text2command. Описание этого адаптера можно найти здесь [github](https://github.com/yunkong2/yunkong2.text2command) или на #01[http://yunkong2.net].
|
||
Конечно один экземпляр драйвера text2command должен быть установлен и сконфигурирован.
|
||
|
||
*Заметка*: при распознавании обычно вся записанная речь отсылается на сервера google если не включена оффлайн распознавание. В настройках андроид можно включить оффлайн распознавание так: Настройки->Язык и клавиатура->Голосовой ввод Google->Распознавание речи офлайн, там выбрать языки и загрузить.
|
||
|
||
*Заметка*: в режиме распознавания система android воспроизводит громкий звуковой сигнал каждые 10-15 секунд. Что бы сигнала не было слышно, громкость звука выставляется на 0. При ответе голосом от или при использовании команд "tts"/"playSound" громкость будет выставлятся на предустановленную в натройках и убиратся по окончании проигрывания.
|
||
|
||
- *Распознавание речи активно* - активировать распознавание речи средством операционной системы телефона.
|
||
- *Ключевое слово* - Если в распознанном предложении будет найдено это слово (или фраза), то текст будет отправлен "text2command" для анализа. Не обязательно иметь ключевое слово в начале предложения. Вы можете пренебречь ключевым словом, но в этом случае все фразы будут отправлятся text2command для анализа.
|
||
- *Экземпляр Text2command* - номер экземпляра драйвера text2command. Обычно 0.
|
||
- *Громкость речи* - громкость для ответов голосом. Всё остальное время громкость будет установлена на 0.
|
||
- *Комната по умолчанию* - если телефон или планшет постоянно находится в одной комнате, то нет необходимости говорить "Включи свет в кабинете", если планшет находится в кабинете. Можно просто сказать "Включи свет". Что бы это было возможно, нужно задать комнату по умолчанию. Имя комнаты по умолчанию будет использоватся каждый раз, если в сообщении не найдено имя комнаты.
|
||
- *Отвечать голосом* - активирует ответы от text2command голосом. Для этого должна быть настроена TTS система на телефоне.
|
||
|
||
### Доступ к изображениям и другим ресурсам
|
||
|
||
Приложение копирует view файл выбранного проекта и все связанные
|
||
с ним изображения при синхронизации в телефон (внутренняя память).
|
||
Функция автоматического обновления отсутствует, поэтому вам самим
|
||
придется перезапустить синхронизацию вручную.
|
||
|
||
В телефон будут скопированы:
|
||
|
||
- view файлы и все остальные файлы в папке выбранного проекта с расширениями: .png .jpg .jpeg .gif
|
||
- все файлы изображений с расширением .png .jpg .jpeg .gif и файлы с расширением .wav .mp3 .bmp .svg, которые находятся в папке драйвера [yunkong2 data directory]/files/ и на которые ссылаются в описании view файла выбранного vis проекта. Первая часть ссылки [yunkong2 data directory]/files/ в своем названии должна содержать знак "." в противном случае, внутренние файлы не будут скопированы.
|
||
|
||
Чтобы приложение правильно заменило ссылки, файлы должны быть
|
||
определены в виде абсолютной ссылки (например, /vis.0/main/img/test.png).
|
||
Относительные ссылки не поддерживаются. Если ссылки на ресурсы,
|
||
внедрены в виде HTML внутри виджетов, то тогда синтаксис должен в
|
||
точности соответствовать следующему шаблону ```... src='/vis.0/main...'```
|
||
или ```... src ="/vis.0/main..."```. Другие обозначения не распознаются. Кроме
|
||
того, вы можете настроить URL подстановки в диалоге настроек. Этот URL
|
||
указывает на внешний URL-адрес веб-сервера VIS или другой локальный
|
||
веб-сервер. Все найденные ссылки на URL присутствуют в view файле,
|
||
который вместе с настроенным Test стартует при загрузке на устройство,
|
||
меняя URL на локальный путь при синхронизации. Обратите внимание, что
|
||
эта замена не реализована для встроенных ссылок в HTML-коде (например
|
||
```https://[your domain]/visweb```).
|
||
|
||
Замена ссылок во время выполнения, в настоящее время
|
||
ограничивается следующими виджетами:
|
||
|
||
- basic string (unescaped)
|
||
- basic string src
|
||
- basic json table
|
||
|
||
Поскольку значения передаются во время выполнения, файлы
|
||
передаются устройству только если они находятся в папке проекта или
|
||
ссылаются на другой статически настроенный виджет. Механизм загрузки
|
||
отсутствующих картинок отсутствует. Коллекции иконок, предлагаемые в
|
||
качестве отдельного драйвера yunkong2 не являются частью приложения, но
|
||
также будут скопированы во время синхронизации, если изображения
|
||
определены в views.
|
||
|
||
Вы можете получить доступ к другим ресурсам в пределах
|
||
приложения, если будете использовать полные пути, начинающиеся с http:// или https://.
|
||
Эти файлы не загружаются локально при синхронизации, но
|
||
загружаются непосредственно с соответствующего сервера через http: // или
|
||
https://, если view отображено в приложении. Если вы используете обратный
|
||
прокси-сервер с проверкой подлинности по http, то тогда учетные данные
|
||
могут быть внедрены в URL в следующей форме:
|
||
|
||
```https://[username]:[password]@[my domain]/vis.0/main/...```
|
||
|
||
Применение веб-модулей других драйверов типа VIS
|
||
Другие драйвера типа VIS также могут поставлять веб-данные. Эти
|
||
данные могут быть отображены внутри VIS view в iframe. Это особенно
|
||
актуально для драйверов Flot и Rickshaw схем.
|
||
На текущий момент внедрены в приложение только клиентские части
|
||
следующих драйверов:
|
||
|
||
- Flot
|
||
- Rickshaw
|
||
|
||
При использовании локальной версии Flot, источник iframe должен
|
||
начинаться с ```/flot/index.html?```.
|
||
|
||
Другие данные, в том числе и данные с различных серверов,
|
||
например, с веб-камер также могут быть отображены в приложении, при
|
||
условии, что используется полный URL для сервера.
|
||
|
||
### Выход из приложения
|
||
|
||
Приложение можно закрыть с помощью кнопки «Home». Но тогда в
|
||
этом случае приложение будет работать в фоновом режиме и продолжит
|
||
потреблять ресурсы памяти и аккумулятора. Опция «Sleep» в фоновом
|
||
режиме поможет уменьшить потребление. В этом случае socket.io
|
||
соединение прерывается, когда приложение неактивно.
|
||
Чтобы полностью завершить приложение необходимо трижды нажать
|
||
на кнопку «Back» в течении одной секунды. Кроме того, приложение
|
||
позволяет экстренно завершится. Для этого вам нужно вставить простую
|
||
статическую ссылку виджет в вашем view, содержащем следующую ссылку:
|
||
javascript:logout (). Здесь вы найдете такой виджет для импорта в VIS:
|
||
```
|
||
[{"tpl":"tplIconLink","data":{"visibility-cond":"==","visibility-val":1,"href":"javascript:logout ();","target":"_self","text":"","views":null,"gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"src":"/icons-material-png/action/ic_exit_to_app_black_48dp.png","name":"","class":""},"style":{"left":"1232px","top":"755px","z-index":"106","background":"none","border-style":"none","color":"#000000","font-family":"Arial, Helvetica, sans-serif","font-size":"large","letter-spacing":"","font-weight":"bold","width":"34px","height":"32px"},"widgetSet":"jqui"}]
|
||
```
|
||
|
||
### Использование приложения с облаком yunkong2.pro
|
||
Вы можете подключиться к своему дому через облако yunkong2.pro. Для этого:
|
||
1. Настройте соединение WiFi.
|
||
|
||
![WiFi соединение](img/yunkong2.pro1.png)
|
||
|
||
Введите свое имя SSID для дома.
|
||
Вы можете просто нажать кнопку «<=», и текущий SSID будет автоматически вставлен в соответствующее поле.
|
||
|
||
В зависимости от имени SSID приложение определит, должен ли он использовать локальный адрес (URL-адрес сокета на последнем снимке) или yunkong2.pro как способ подключения.
|
||
|
||
2. Вы должны ввести свои учетные данные yunkong2.pro в разделе «Мобильное соединение»:
|
||
|
||
![Мобильное соединение](img/yunkong2.pro2.png)
|
||
|
||
Установите флажок «Использовать yunkong2.pro» и введите ниже свой логин (email) и пароль для облака yunkong2.pro.
|
||
|
||
После этого, когда вы подключаетесь через yunkong2.pro, вы увидите маленькую иконку в верхнем правом углу в течение первых 10 секунд, если соединение осуществляется через облако yunkong2.pro.
|
||
|
||
![yunkong2.pro icon](img/yunkong2.pro3.png)
|