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

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

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

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

Описание

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

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

Запуск приложения сutecom, которое позволяет быстро и удобно произвести диагностику COM-портов с помощью удобного графического пользовательского интерфейса. 

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

Через RDP можно предоставить доступ к удаленному RPD-серверу по протоколу RDP 5.0 (Windows, Linux, Mac) с поддержкой RemoteApp для Windows:

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



Настройка 

Настройки выхода во внешние приложения осуществляются Тип касс - external_apps.conf - названия кнопок, адрес запуска скрипта и доп. параметр остановки кассового модуля.

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

Сам скрипт - на кассе в папке /home/ukm5/mint/bin/ext_apps/ в файле формата BASH или SHELL, с правами 766. 

Написание скриптов запуска внешних приложений полностью возлагается на пользователя. Все внешние скрипты должны располагаться в папке /home/ukm5/mint/bin/ext_apps/ и иметь права запуска 766. Если после завершения работы кассового модуля и завершения работы пользовательского скрипта необходимо вновь возобновить работу кассового модуля, то в пользовательском скрипте должны быть прописаны следующие команды:

Функция (необходимо расположить в начале скрипта):

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
}

Эту часть нужно разместить в конце скрипта:

result_with_restart
echo "==== UI started"

echo
echo "==== starting mint service"
systemctl start mint
result
echo "==== mint service started"


echo
echo "==== $0 completed $(date) ========="

exit 0

Чтобы работа и ошибки самого скрипта отразились в логе, надо добавить в начало скрипта:

MINT_DIR="/home/ukm5/mint/bin"
NAME=$(tail $MINT_DIR/.ext_app)
LOGFILE=$MINT_DIR/logs/service-$NAME.log

И у каждой команды, от к-рой требуется вывод сообщения в лог, добавить >> $LOGFILE.


Логи пишутся в папку /home/ukm5/mint/bin/logs/: лог запуска скрипта пишется в application.log, работа и ошибки самого скрипта – в service-имя_скрипта.log.

Горячие клавиши:

  • Right ALT+TAB – переключение между открытыми приложениями;
  • Right ALT+F4 – закрытие активного приложения в фокусе.
  • Остальные - в офиц. док-ции Openbox

Настройка и запуск протокола RDP (для доступа к серверу Windows)

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

      1. На сервере Windows должен быть настроен доступ по RDP. КЛИЕНТ

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

      3. На кассе должен находиться готовый скрипт запуска приложения xfreeRDP, включая реквизиты для входа, а также файл подключения с RDP-фермы.

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

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

В появившемся иерархическом древе необходимо найти конфигурационный файл 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. Живет на касссе
работа и ошибки самого скрипта – в service-имя_скрипта.log.

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

В настройках на самой кассе необходимо скопировать скрипт запуска RDP 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 или 32session bpp:i:32
Порт подключения к серверу RDPserver port:i:3389
Включить сглаживание скриптовallow font smoothing:i:1
IP- или доменный адрес сервера RDPfull address:s:example.domain.ru


Минимальный состав параметров для подключения к RDP RemoteApplication-ферме
Количество бит на цвет - 16 или 32session bpp:i:32
Включить режим открытия удалённого приложенияremoteapplicationmode:i:1
Порт подключения к серверу RDPserver port:i:3389
Включить сглаживание скриптовallow font smoothing:i:1
IP- или доменный адрес сервера RDPfull 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

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

  • Нет меток