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

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

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

Сообщение tarasfrompir » Пт фев 07, 2020 9:55 pm

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

Сейчас, вот, сделал голосовое воспроизведение последней команды sayTo на терминал, и уже столкнулся с тем, что в зависимости от системной LOCALE придется писать нехилую обвязку. Так что, работы полно...
дело в том что мдм может отправлять не только текст но и ссылку на сгенериный файл - поэтому получается что можно не лепить генератора речи...
За это сообщение автора tarasfrompir поблагодарил:
hc2hunter (Сб фев 08, 2020 9:36 am)
Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
pash4uga
Сообщения: 192
Зарегистрирован: Чт окт 04, 2018 12:04 pm
Благодарил (а): 28 раз
Поблагодарили: 45 раз

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

Сообщение pash4uga » Вс фев 09, 2020 5:57 am

Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

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

Сообщение hc2hunter » Вт фев 11, 2020 9:51 am

Ну, в общем-то терминал уже разговаривает... Напишу языковую обвязочку в настройках и можно будет попробовать, но...
Есть вопрос к бывалым -
- чтобы конкретный терминал что-то сказал ему отправляется команда типа sayTo("фраза",2,"Терминал"). Но я нигде не нашел информацию, откуда терминал знает о приоритете сообщения? (1,2 и т.д...). Или это уже оставляется на усмотрение самой системы, будет она отправлять на терминал команду tts или ограничится текстом в консоле?
fandaymon
Сообщения: 1570
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 40 раз
Поблагодарили: 578 раз

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

Сообщение fandaymon » Вт фев 11, 2020 12:53 pm

hc2hunter писал(а):
Вт фев 11, 2020 9:51 am
Ну, в общем-то терминал уже разговаривает... Напишу языковую обвязочку в настройках и можно будет попробовать, но...
Есть вопрос к бывалым -
- чтобы конкретный терминал что-то сказал ему отправляется команда типа sayTo("фраза",2,"Терминал"). Но я нигде не нашел информацию, откуда терминал знает о приоритете сообщения? (1,2 и т.д...). Или это уже оставляется на усмотрение самой системы, будет она отправлять на терминал команду tts или ограничится текстом в консоле?
Ниоткуда не знает. Приоритет проверяется при отправке. Когда заводится терминал в МДМ, то указывается Минимальный уровень важности сообщений
За это сообщение автора fandaymon поблагодарил:
hc2hunter (Вт фев 11, 2020 1:30 pm)
Рейтинг: 1.16%
Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

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

Сообщение hc2hunter » Вт фев 11, 2020 3:00 pm

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

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

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

<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); 
версия обновлена, см. ниже...
Последний раз редактировалось hc2hunter Ср фев 12, 2020 10:30 am, всего редактировалось 3 раза.
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород
Благодарил (а): 110 раз
Поблагодарили: 899 раз

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

Сообщение SmoKE_xDDD » Вт фев 11, 2020 3:06 pm

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:текст
    Произнести фразу. Фраза будет проговорена если в системе устройства имеется корректно работающий голосовой движок и данная опция отмечена в Настройки\Терминал.
Примеры вызова команд из платформы MDMПоказать
Команды можно вызывать из веб-интерфейса

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

<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); 
А можно попросить сразу настройку: "Отключить все что касается терминала и не поднимать никаких сервером и никуда ничего не отправлять"?)))
Спасибо!
Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

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

Сообщение hc2hunter » Вт фев 11, 2020 3:07 pm

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

Вообще, я более чем уверен, что API куда шире, чем описано в указанной теме, просто полного списка команд, наверное, никто никогда не выкладывал.
А так-то можно написать целый механизм по удаленному управлению приложением. Начиная от команд типа exit (выйти из приложения) и т.п...
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород
Благодарил (а): 110 раз
Поблагодарили: 899 раз

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

Сообщение SmoKE_xDDD » Вт фев 11, 2020 3:10 pm

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

Вообще, я более чем уверен, что API куда шире, чем описано в указанной теме, просто полного списка команд, наверное, никто никогда не выкладывал.
А так-то можно написать целый механизм по удаленному управлению приложением. Начиная от команд типа exit (выйти из приложения) и т.п...
Я просто не пользуюсь вообще синтезом речи и для меня нет смысла поднимать сервак на 7999 порту и тратить на это ресурсы)
Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

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

Сообщение hc2hunter » Вт фев 11, 2020 3:11 pm

Так не поднимай...? В чем проблема? :)
Галка же теперь есть в Настройках

Я это всё вообще затеял для желающих слушать системные сообщения, адресованные терминалу.
Разумеется, если функционал Терминала не нужен - просто НЕ включаем его.
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород
Благодарил (а): 110 раз
Поблагодарили: 899 раз

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

Сообщение SmoKE_xDDD » Вт фев 11, 2020 3:14 pm

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

Я это всё вообще затеял для желающих слушать системные сообщения, адресованные терминалу.
Разумеется, если функционал Терминала не нужен - просто НЕ включаем его.
Я просто не обновлялся еще, если галка есть то гуд!)
За это сообщение автора SmoKE_xDDD поблагодарил:
hc2hunter (Вт фев 11, 2020 3:16 pm)
Рейтинг: 1.16%
Ответить