Оглавление |
---|
Общие настройки
Настройки выхода во внешние системы осуществляются на кассовом сервере УКМ 5 по адресу: Магазин – Типы касс, где нужно выбрать тип кассы и нажать кнопку Настройки: Якорь 111 111
В появившемся иерархическом древе необходимо найти конфигурационный файл external_apps.conf (applications\external_apps\external_apps.conf), где в список приложений app_list нужно добавить следующую конфигурацию, после чего сохранить настройки:
Блок кода | ||||
---|---|---|---|---|
| ||||
launcherPossition = 1400 # Очередность расположения кнопки на экране name = "Внешние приложения" # Надпись на кнопке (может быть длиной от 1 до 30 символов) app_list : [ { name : "cutecom", # Название кнопки на экране "Внешние приложения" command : """start_cutecom.sh""" # Полное имя скрипта с его расположением (при параметре isExclusive = true указываем только название скрипта в папке /home/ukm5/mint/bin/ext_apps/) isExclusive = true # Запуск скрипта с выключением кассового модуля и последующим его запуском (по умолчанию – false, если отсутствует – тоже false) } { name : "xterm", # Название кнопки на экране "Внешние приложения" command : """/home/ukm5/mint/bin/ext_apps/start_xterm.sh""" # Полное имя скрипта с его расположением } { name : "freerdp", # Название кнопки на экране "Внешние приложения" command : """start_xterm.sh""" # Полное имя скрипта с его расположением (при параметре isExclusive = true указываем только название скрипта в папке /home/ukm5/mint/bin/ext_apps/) isExclusive = true # Запуск скрипта с выключением кассового модуля и последующим его запуском (по умолчанию – false, если отсутствует – тоже false) } ] |
В файле external_apps.conf (applications\external_apps\external_apps.conf) задаются только названия кнопок, адреса запуска скриптов, а также дополнительный параметр остановки кассового модуля. Непосредственно скрипты запуска внешних приложений располагаются на самой кассе.
...
2. На кассовом сервере также должны быть выполнены необходимые настройки.
3. На кассе должен находиться готовый скрипт запуска приложения под названием xfreeRDP, включая реквизиты для входа, а также файл подключения с RDP-фермы.
...
Блок кода | ||||
---|---|---|---|---|
| ||||
{ name : "FreeRDP", # Название кнопки на экране "Внешние приложения" command : """start_freerdp.sh""" # Название скрипта в папке /home/ukm5/mint/bin/ext_apps/ на кассе isExclusive = true # Запуск скрипта с выключением кассового модуля и последующим его запуском } |
Например:
Имя скрипта start_freerdp.sh следует заменить на другое, чтобы в ходе будущих обновлений этот скрипт-пример не затёрся.
...
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
#!/bin/bash
MINT_DIR="/home/ukm5/mint/bin" # Папка исполняемых файлов кассы УКМ 5
NAME=$(tail $MINT_DIR/.ext_app) # Имя скрипта
LOGFILE=$MINT_DIR/logs/service-$NAME.log # Лог-файл
LOGIN='Admin' # Логин пользователя Windows
PASSWORD='One1' # Пароль пользователя Windows
IP_ADDR='' # IP-адрес или доменное имя подключения RDP
PORT='3389' # Порт подключения RDP
RDPFILE='/home/ukm5/mint/bin/ext_apps/1c.rdp' # Файл подключения RDP с Windows RDP-фермы
#COM_01='/serial:COM1,/dev/ttyS0,Serial,permissive' # Пример проброса COM-порта
#COM_07='/serial:COM7,/dev/ttyACM0,Serial,permissive' # Пример проброса USB-COM-порта (работает на основании драйвера в Ubuntu, сканер работает с ограничениями)
COM_1='' # COM-порты
COM_2='' #
COM_3='' #
COM_4='' #
COM_5='' #
COM_6='' #
COM_7='' #
COM_8='' #
COM_9='' #
#PRINTER_00='/printer' #
PRINTER='' # Принтер
result() # Функция выхода из скрипта при критической ошибке запуска
{
if [ $? -ne 0 ]; then
echo "ERROR"
exit 1
fi
}
result_with_restart() # Функция перезапуска кассового модуля при завершении скрипта с ошибкой
{
if [ $? -ne 0 ]; then
echo "ERROR"
echo
echo "==== starting mint service"
systemctl start mint
result
echo "==== mint service started"
echo
echo "==== starting UI"
export DISPLAY=:0
su ukm5 -c "$MINT_DIR/start_chrome.sh >/dev/null 2>&1 &"
echo "==== UI started"
exit 1
fi
}
echo "==== $0 started $(date) ===========" # Запуск RDP
echo
echo "==== stopping mint service" # Останавливаем mint
systemctl stop mint
result_with_restart
echo "==== mint service stopped"
echo
echo "==== starting freerdp" # Запускаем RDP
export DISPLAY=:0
#/opt/freerdp-nightly/bin/xfreerdp /u:$LOGIN /p:$PASSWORD /v:$IP_ADDR:$PORT /cert-ignore $COM_1 $COM_2 $COM_3 $COM_4 $COM_5 $COM_6 $COM_7 $COM_8 $COM_9 $PRINTER /multitouch /f +compression >> $LOGFILE
/opt/freerdp-nightly/bin/xfreerdp $RDPFILE /u:$LOGIN /p:$PASSWORD /cert-ignore >> $LOGFILE #без multitouch - 1С с ними не работает
result_with_restart
echo "==== UI started"
echo
echo "==== starting mint service" # Запускаем mint после выхода/дисконнекта RDP
systemctl start mint
result
echo "==== mint service started"
echo
echo "==== $0 completed $(date) ========="
exit 0 |
...
Приложение xfreerdp позволяет подключаться по разным параметрам; также есть возможность использовать файл формата .rdp.
Минимальный состав параметров для подключения к RDP-ферме | |
---|---|
Количество бит на цвет – 16 или 32 | session bpp:i:32 |
Порт подключения к серверу RDP | server port:i:3389 |
Включить сглаживание скриптов | allow font smoothing:i:1 |
IP- или доменный адрес сервера RDP | full address:s:example.domain.ru |
Минимальный состав параметров для подключения к RDP RemoteApplication-ферме | |
---|---|
Количество бит на цвет - 16 или 32 | session bpp:i:32 |
Включить режим открытия удалённого приложения | remoteapplicationmode:i:1 |
Порт подключения к серверу RDP | server port:i:3389 |
Включить сглаживание скриптов | allow font smoothing:i:1 |
IP- или доменный адрес сервера RDP | full address:s:example.domain.ru |
Полный адрес расположения удалённого приложения | remoteapplicationprogram:s:C:\Program Files (x86)\1cv8\common\1cestart.exe |
Имя удалённого приложения | remoteapplicationname:s:1C V8_DEV_XXX |
Строка запуска удалённого приложения с параметрами | remoteapplicationcmdline:s:ENTERPRISE /S"DEV-16-AS-001\V8_DEV_XXX"/RunModeOrdinaryApplication |
Название коллекции удалённых приложений | loadbalanceinfo:s:tsv://MS Terminal Services Plugin.1.sample |
Руководство по работе с xfreerdp и описание всех параметров располагается здесь: https://wiki.yola.ru/_media/freerdp/freerdp-user-manual.pdf.
...