Страница 35 из 85

Re: [Приложение] мой MjDM (Android)

Добавлено: Пт фев 07, 2020 9:55 pm
tarasfrompir
hc2hunter писал(а): Пт фев 07, 2020 6:42 pm
tarasfrompir писал(а): Пт фев 07, 2020 5:13 pm Так реализуй апи с описанием - а мы его затянем в МДМ... Помогу если что
Не... спасибо, но пока воздержусь...
Мне бы с хотелками пользователей для начала разобраться, а потом уже мечтать о высоких материях :)

Сейчас, вот, сделал голосовое воспроизведение последней команды sayTo на терминал, и уже столкнулся с тем, что в зависимости от системной LOCALE придется писать нехилую обвязку. Так что, работы полно...
дело в том что мдм может отправлять не только текст но и ссылку на сгенериный файл - поэтому получается что можно не лепить генератора речи...

Re: [Приложение] мой MjDM (Android)

Добавлено: Вс фев 09, 2020 5:57 am
pash4uga

Re: [Приложение] мой MjDM (Android)

Добавлено: Вт фев 11, 2020 9:51 am
hc2hunter
Ну, в общем-то терминал уже разговаривает... Напишу языковую обвязочку в настройках и можно будет попробовать, но...
Есть вопрос к бывалым -
- чтобы конкретный терминал что-то сказал ему отправляется команда типа sayTo("фраза",2,"Терминал"). Но я нигде не нашел информацию, откуда терминал знает о приоритете сообщения? (1,2 и т.д...). Или это уже оставляется на усмотрение самой системы, будет она отправлять на терминал команду tts или ограничится текстом в консоле?

Re: [Приложение] мой MjDM (Android)

Добавлено: Вт фев 11, 2020 12:53 pm
fandaymon
hc2hunter писал(а): Вт фев 11, 2020 9:51 am Ну, в общем-то терминал уже разговаривает... Напишу языковую обвязочку в настройках и можно будет попробовать, но...
Есть вопрос к бывалым -
- чтобы конкретный терминал что-то сказал ему отправляется команда типа sayTo("фраза",2,"Терминал"). Но я нигде не нашел информацию, откуда терминал знает о приоритете сообщения? (1,2 и т.д...). Или это уже оставляется на усмотрение самой системы, будет она отправлять на терминал команду tts или ограничится текстом в консоле?
Ниоткуда не знает. Приоритет проверяется при отправке. Когда заводится терминал в МДМ, то указывается Минимальный уровень важности сообщений

Re: [Приложение] мой MjDM (Android)

Добавлено: Вт фев 11, 2020 3:00 pm
hc2hunter
Тестовая версия с поддержкой работы в качестве Терминала (т.н. MajorDoidAPI). Настраивается в Настройках приложения.
При активации данной опции запускается сервис на порту 7999 и ожидает входящих команд.
Реализовано согласно спецификации, описанной тут: viewtopic.php?f=5&t=518

Пока в рамках тестирования поддерживаются следующие команды:
  • home
    Переход на домашнюю страницу. Если список серверов пуст, переход никуда не осуществляется. Если была загружена внешняя страница (например по команде url: или по схеме mymjdm://openurl), то осуществляется переход на домашнюю страницу первого по списук сервера.
  • settings
    Вызов экрана настроек Приложения
  • url:ссылка
    Переход по указанной ссылке. Команда аналогична внешней команде со схемой mymjdm://openurl/?url=http(s)://ссылка&user=логин&pass=пароль за исключением того, что согласно MajorDroidAPI параметры авторизации не поддерживаются. Поэтому программой будет попытка использовать логин/пароль последнего активного сервера. Если ресурс все-таки требует авторизации и логин/пароль не прокатят - будет отлуп...
  • tts:текст
    Произнести фразу. Фраза будет проговорена если в системе устройства имеется корректно работающий голосовой движок и данная опция отмечена в Настройки\Терминал.
Примеры вызова команд из платформы MDMSPOILER_SHOW
Команды можно вызывать из веб-интерфейса

Код: Выделить всё

<a href="app://voice">КНОПКА</a> 
Либо удалённо при помощи следующего скрипта:

Код: Выделить всё

$address='192.168.0.170'; //ip-адрес терминала, явно видимый с сервера MDM
$service_port='7999';
$in='tts:проверка'; //команда для отправки

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "<br/>\n";
    return 0;
}
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
    return 0;
}
socket_write($socket, $in, strlen($in));
socket_close($socket); 
версия обновлена, см. ниже...

Re: [Приложение] мой MjDM (Android)

Добавлено: Вт фев 11, 2020 3:06 pm
SmoKE_xDDD
hc2hunter писал(а): Вт фев 11, 2020 3:00 pm Тестовая версия с поддержкой работы в качестве Терминала (настраивается в Настройках приложения).
При активации данной опции запускается сервис на порту 7999 и ожидает входящих команд.
Реализовано согласно спецификации, описанной тут: viewtopic.php?f=5&t=518

Пока поддерживаются следующие команды:
  • home
    Переход на домашнюю страницу. Если список серверов пуст, переход никуда не осуществляется. Если была загружена внешняя страница (например по команде url: или по схеме mymjdm://openurl), то осуществляется переход на домашнюю страницу первого по списук сервера.
  • settings
    Вызов экрана настроек Приложения
  • url:ссылка
    Переход по указанной ссылке. Команда аналогична внешней команде со схемой mymjdm://openurl/?url=http(s)://ссылка&user=логин&pass=пароль за исключением того, что согласно MajorDroidAPI параметры авторизации не поддерживаются. Поэтому программой будет попытка использовать логин/пароль последнего активного сервера. Если ресурс все-таки требует авторизации и логин/пароль не прокатят - будет отлуп...
  • tts:текст
    Произнести фразу. Фраза будет проговорена если в системе устройства имеется корректно работающий голосовой движок и данная опция отмечена в Настройки\Терминал.
Примеры вызова команд из платформы MDMSPOILER_SHOW
Команды можно вызывать из веб-интерфейса

Код: Выделить всё

<a href="app://voice">КНОПКА</a> 
Либо удалённо при помощи следующего скрипта:

Код: Выделить всё

$address='192.168.0.170'; //ip-адрес терминала, явно видимый с сервера MDM
$service_port='7999';
$in='tts:проверка'; //команда для отправки

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "<br/>\n";
    return 0;
}
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
    return 0;
}
socket_write($socket, $in, strlen($in));
socket_close($socket); 
А можно попросить сразу настройку: "Отключить все что касается терминала и не поднимать никаких сервером и никуда ничего не отправлять"?)))
Спасибо!

Re: [Приложение] мой MjDM (Android)

Добавлено: Вт фев 11, 2020 3:07 pm
hc2hunter
Можно как-то попонятнее...? :)
Сама программа никуда ничего не отправляет. Она, напротив, ждет любых фраз на порту 7999.

Вообще, я более чем уверен, что API куда шире, чем описано в указанной теме, просто полного списка команд, наверное, никто никогда не выкладывал.
А так-то можно написать целый механизм по удаленному управлению приложением. Начиная от команд типа exit (выйти из приложения) и т.п...

Re: [Приложение] мой MjDM (Android)

Добавлено: Вт фев 11, 2020 3:10 pm
SmoKE_xDDD
hc2hunter писал(а): Вт фев 11, 2020 3:07 pm Можно как-то попонятнее...? :)
Сама программа никуда ничего не отправляет. Она, напротив, ждет любых фраз на порту 7999.

Вообще, я более чем уверен, что API куда шире, чем описано в указанной теме, просто полного списка команд, наверное, никто никогда не выкладывал.
А так-то можно написать целый механизм по удаленному управлению приложением. Начиная от команд типа exit (выйти из приложения) и т.п...
Я просто не пользуюсь вообще синтезом речи и для меня нет смысла поднимать сервак на 7999 порту и тратить на это ресурсы)

Re: [Приложение] мой MjDM (Android)

Добавлено: Вт фев 11, 2020 3:11 pm
hc2hunter
Так не поднимай...? В чем проблема? :)
Галка же теперь есть в Настройках

Я это всё вообще затеял для желающих слушать системные сообщения, адресованные терминалу.
Разумеется, если функционал Терминала не нужен - просто НЕ включаем его.

Re: [Приложение] мой MjDM (Android)

Добавлено: Вт фев 11, 2020 3:14 pm
SmoKE_xDDD
hc2hunter писал(а): Вт фев 11, 2020 3:11 pm Так не поднимай...? В чем проблема? :)
Галка же теперь есть в Настройках

Я это всё вообще затеял для желающих слушать системные сообщения, адресованные терминалу.
Разумеется, если функционал Терминала не нужен - просто НЕ включаем его.
Я просто не обновлялся еще, если галка есть то гуд!)