Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 13 Следующий »

Описание

В меню кассы доступен раздел Внешние приложения, позволяющий прямо из интерфейса кассы осуществлять запуск разнообразных внешних приложений и пользовательских скриптов.

Внимание! Выход во внешние приложения доступен только для версии кассы не ниже 1.28.1!

Опция сutecom позволяет быстро и удобно произвести диагностику COM-портов без необходимости использования консоли. 

Xterm обеспечивает доступ к кассовой клавиатуре, который может пригодиться в случае отсутствия или отказа основной.

Через RDP можно предоставить доступ к удаленному компьютеру, работающему под управлением Windows:

Клавиатурная кассаTouch-касса



Настройка 

Настройки выхода во внешние приложения осуществляются в файле /home/ukm5/mint/bin/conf/applications/external_apps/external_apps.conf, права - 644, размещенном непосредственно на кассе. В данном файле хранятся названия кнопок и скриптов для запуска приложений, а также их параметры. 

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)
            }
          ]


Настройка и запуск протокола RDP 

Успешный выход во внешние системы на базе Windows, осуществляемый через протокол RDP, требует выполнения трех обязательных условий:

      1. Выход во внешние приложения должен быть разрешен настройками кассового сервера.

      2. На кассе должны быть установлены необходимые драйверы.

      3. На сервере Windows должны быть в наличии нужные драйверы. 

Настройки на кассовом сервере

На кассовом сервере по адресу: Магазин – Типы касс, где нужно выбрать тип кассы и нажать кнопку Настройки:

В появившемся иерархическом древе необходимо найти конфигурационный файл external_apps.conf (applications\external_apps\external_apps.conf), где в список приложений app_list нужно добавить следующую конфигурацию:

{
  name : "FreeRDP", # Наименование кнопки во Внешних приложениях
  command : """start_freerdp.sh""" # Название скрипта в папке /home/ukm5/mint/bin/ext_apps/ на кассе
  isExclusive = true # Запуск скрипта с выключением кассового модуля и последующим его запуском
}

Например:

Имя скрипта start_freerdp.sh следует заменить на другое, чтобы в ходе будущих обновлений этот скрипт-пример не затёрся.

Лог запуска пишется в файл /home/ukm5/mint/bin/logs/application.log. - ГДЕ ОН ЖИВЕТ?

Пример удачного запуска скрипта RDP:

18:24:05.514 DEBUG [WebView                  ] - received handled message ClientMessage({"event":"SelectExternalApp","data":{"id":2}}) from Actor[akka://MainActorSystem/deadLetters]   [[ru.servplus.pos.webview.WebView]]
18:24:05.514 DEBUG [WebView                  ] - Входящее сообщение от клиента.   [[ru.servplus.pos.webview.WebView]]
18:24:05.514 DEBUG [AppBuilder               ] - received handled message RestartLogoutTimer from Actor[akka://MainActorSystem/user/View#-641267022]   [[ru.servplus.pos.appbuilder.AppBuilder]]
18:24:05.514 DEBUG [ExternalAppsUI           ] - received handled message SpecificAppMessage(SelectExternalApp,{"id":2}) from Actor[akka://MainActorSystem/user/View#-641267022]   [[ru.servplus.pos.external_apps.ExternalAppsUI]]
18:24:05.519 DEBUG [ExternalApps             ] - processing Event(SelectExternalApp(2),Data(ArrayBuffer(ExtApp(0,Cutecom,start_cutecom.sh,true), ExtApp(1,Xterm,/home/ukm5/mint/bin/ext_apps/start_xterm.sh,false), ExtApp(2,FreeRDP,start_freerdp.sh,true)),Cfg(ArrayBuffer(ExternalAppCfg(Cutecom,start_cutecom.sh,true), ExternalAppCfg(Xterm,/home/ukm5/mint/bin/ext_apps/start_xterm.sh,false), ExternalAppCfg(FreeRDP,start_freerdp.sh,true)),/home/ukm5/mint/bin/.ext_app),ru.servplus.pos.external_apps.DefaultDependencyFactory@13f861f)) from Actor[akka://MainActorSystem/user/External_apps_UI#-1988751806] in state Idle   [[ru.servplus.pos.external_apps.ExternalApps]]
18:24:05.519 DEBUG [ExternalApps             ] - Пользователь выбрал внешнее приложение с id: 2   [[ru.servplus.pos.external_apps.ExternalApps]]
18:24:05.522 DEBUG [ExternalApps             ] - Запуск команды: start_freerdp.sh   [[ru.servplus.pos.external_apps.ExternalApps]]
18:24:05.526 DEBUG [ExternalAppsUI           ] - received handled message Success from Actor[akka://MainActorSystem/user/External_apps_BL#1684747269]   [[ru.servplus.pos.external_apps.ExternalAppsUI]]
18:24:05.526 DEBUG [WebView                  ] - received handled message Success from Actor[akka://MainActorSystem/user/External_apps_UI#-1988751806]   [[ru.servplus.pos.webview.WebView]]
18:24:05.527 DEBUG [WebView$                 ] - Сообщение для клиента: {"event":"Success","data":null}   [[ru.servplus.pos.webview.WebView$]]

Настройки на кассе

В настройках на самой кассе необходимо отредактировать скрипт запуска RDP start_freerdp_example.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 или 32session bpp:i:32
Порт подключения к серверу RDPserver port:i:3389
Включить сглаживание скриптовallow font smoothing:i:1
IP- или доменный адрес сервера RDPfull address:s:rdcb-rzhavki.apkholding.ru
Минимальный состав параметров для подключения к RDP RemoteApplication-ферме
Количество бит на цвет - 16 или 32session bpp:i:32
Включить режим открытия удалённого приложенияremoteapplicationmode:i:1
Порт подключения к серверу RDPserver port:i:3389
Включить сглаживание скриптовallow font smoothing:i:1
IP- или доменный адрес сервера RDPfull address:s:rdcb-rzhavki.apkholding.ru
Полный адрес расположения удалённого приложенияremoteapplicationprogram:s:C:\Program Files (x86)\1cv8\common\1cestart.exe
Имя удалённого приложенияremoteapplicationname:s:1C V8_DEV_PASHAEV_R_FL_UT_UKM - НОРМАЛЬНО В ОТКРЫТОМ ДОСТУПЕ?
Строка запуска удалённого приложения с параметрами

remoteapplicationcmdline:s:ENTERPRISE /S"DEV-16-AS-001\V8_DEV_PASHAEV_R_FL_UT_UKM" /N"IntKassa" /P"kassa82"  /RunModeOrdinaryApplication

Название коллекции удалённых приложенийloadbalanceinfo:s:tsv://MS Terminal Services Plugin.1.RDS-Rzhavki-KKM


Свежую версию xfreerdp можно взять на сайте:
https://ci.freerdp.com/job/freerdp-nightly-binaries/

Руководство по работе с xfreerdp и описание всех параметров располагается здесь:
https://wiki.yola.ru/_media/freerdp/freerdp-user-manual.pdf

Описание всех параметров файла формата .rdp можно найти по адресу:
https://docs.microsoft.com/ru-ru/windows-server/remote/remote-desktop-services/clients/rdp-files

Настройки на сервере Windows во внешней системе

???

  • Нет меток