ГЛАВНАЯ СТРАНИЦА

Как управлять устройствами в системе Tillypad

10.1

История переиздания
25.02.2010
Добавлен параметр последовательного порта WritePerByte.
24.11.2022

Система Tillypad позволяет автоматизировать бизнес-процессы различных предприятий сферы обслуживания: кафе, ресторанов, сетей ресторанов быстрого питания, развлекательных центров и других подобных заведений. Система включает в себя программную и аппаратную части. К программной части относятся программы Tillypad Manager и Tillypad POS, а также приложение MiniPOS. К аппаратной - реальные и виртуальные устройства, используемые в процессе работы.

При построении системы Tillypad важно учесть особенности бизнес-логики предприятия, используемых в нем технологий обслуживания клиентов. Это достигается путем выбора конфигурации аппаратной части комплекса и выполнения настроек программной части.

В состав системы могут входить различные устройства: персональные и специализированные компьютеры, принтеры, фискальные регистраторы, устройства идентификации и авторизации и так далее. Под устройствами в системе понимаются не только собственно устройства (электронные аппараты и приборы), но и специализированные программы, выполняющие определенные наборы функций (виртуальные устройства). В процессе функционирования системы все эти устройства обмениваются информацией. Для этого они должны иметь каналы связи, например, подключаться к компьютерам, входящим в единую локальную сеть (в том числе с использованием беспроводных соединений).

Подключение устройств и настройка их параметров производится по определенным правилам, которые рассмотрены в данном разделе.

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

Все устройства и загрузчики должны быть зарегистрированы в программе Tillypad Manager. Для каждого устройства нужно указать программный модуль (драйвер) и присвоить необходимые значения параметрам устройства.

В программе Tillypad Manager реализована древовидная модель подчинения устройств. В справочнике Устройства описаны все применяемые устройства и их параметры. Каждое устройство является дочерним по отношению или к конкретному загрузчику, или к родительскому устройству. Это родительское устройство, в свою очередь, является дочерним для загрузчика.

При этом древовидность подчинения должна быть соблюдена также и для программных модулей. То есть для данного устройства родительским устройством может быть только то устройство, чей программный модуль является подключающим модулем для программного модуля дочернего устройства.

Каждый программный модуль может поддерживать одну или несколько функциональностей. Функциональность определяет, для управления какими устройствами может использоваться данный программный модуль.

Рисунок 5412. Поддерживаемые функциональности программного модуля

Поддерживаемые функциональности программного модуля

Таким образом, для каждого устройства нужно выполнить:

  • физическое подключение к компьютеру, сети или другому устройству комплекса,

  • установку программы-загрузчика на компьютер или на сервер,

  • регистрацию загрузчика и устройства в программе Tillypad Manager,

  • настройку параметров устройства.

В этом разделе рассмотрены общие принципы работы с устройствами, их параметры, способы подключения устройств и их регистрации в системе, вопросы управления доступом и мониторинг состояния устройств.

Драйверы устройств

Для управления устройствами, входящими в состав системы, используются драйверы устройств (программные модули). Все применяемые драйверы содержатся в справочнике Программные модули .

Основной функцией драйверов является обеспечение типового интерфейса для определенного класса устройств. Эта функция реализуется путем трансляции команд типового интерфейса в команды каждого конкретного устройства.

Некоторые устройства имеют специфические особенности, и поэтому для их управления используются специализированные драйверы. Другие устройства обладают сходным функциональным назначением: они могут реализовывать функции ввода информации, необходимой для работы комплекса, или вывода информации, сформированной в результате работы комплекса. Эти устройства имеют сходные параметры, поэтому для управления такими устройствами может использоваться универсальный драйвер. Например, универсальный драйвер используется для управления различными устройствами ввода (клавиатурами, считывателями). Некоторые типы принтеров также управляются одним универсальным программным модулем.

Чтобы обеспечить возможность выполнения необходимых операций на устройстве, программному модулю требуется определение текущего состояния устройства. Состояние устройства оценивается с помощью набора параметров, который возвращается устройством. Совокупность значений этих параметров, полученных в данный момент времени, характеризует текущее состояние устройства.

Дополнительной функцией драйверов является инициализация устройства – возможность приведения устройства к состоянию, необходимому для выполнения конкретной операции. Примером инициализации устройства может служить реализация печати логотипа на фискальном чеке. В этом случае данные, необходимые для печати логотипа, запрашиваются из флеш-памяти фискального регистратора.

Параметры устройств

При запуске драйверы устройств и программы (.dll и .exe-файлы) считывают параметры, которые определяют дальнейшее поведение этих программ. Значения параметров определяют особенности выполнения программ или функционирования устройств. Настройки параметров, необходимых для управления драйверами устройств, содержатся в базе данных комплекса.

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

В список открытых параметров включаются те параметры, которые предназначены для редактирования пользователем (например, номер порта подключения устройства, ширина бумаги для принтера и тому подобное).

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

Синтаксис параметров

Синтаксис описания параметров, применяемый в системе Tillypad, подобен синтаксису, используемому в конфигурационных файлах операционной системы Microsoft Windows.

Параметр и его значение разделяются знаком равенства.

Пример описания параметра:

Параметр = Значение

Типы данных в значениях параметров

Значения параметров могут относиться к следующим типам данных:

Тип данныхОписаниеПримеры
INTEGERЦелое число2000
FLOATЧисло с плавающей запятой0,001
STRING Строка печатных символов’COM1’
BLOB Строка с печатными и непечатными символами$1C
BOOLEANЛогическое значениеTrue
GUIDГлобальный уникальный идентификатор3848E70D-252A-41E9-960A-967121410873
Перечисляемый тип Перечисление значений через запятуюSERIAL, PARALLEL и т.д.

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

Если параметры указываются без кавычек, то начальные и конечные пробелы отбрасываются при считывании значения параметра. Если требуется указать в значении параметра начальные или конечные пробелы, то это значение должно заключаться в одинарные (') или двойные кавычки (''). Кавычки, открывающие и закрывающие значение параметра, должны относиться к одному и тому же типу.

Правильное использование кавычек:

'2000'
"True"
AUTO

Ошибки при использования кавычек:

'BY DEFAULT"
'9600''
"False

Строка печатных символов

Значения параметров можно указывать в виде строки. В этом случае строка не должна содержать символов возврата каретки.

Например,

MessageReturn = Проведите возврат оплаты по карте

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

Параметр =' 
   Значение 
   Значение 
   Значение 
   Значение 
'

Открывающая и закрывающая кавычка должны быть одинаковыми. Должны применяться или только одиночные кавычки, или только двойные кавычки.

Например, параметр из предыдущего примера может быть указан в таком виде.

MessageReturn =' 
  Проведите возврат 
  оплаты по карте 
'
        

Строка с печатными и непечатными символами

Значения параметров, принадлежащие к строкам с печатными и непечатными символами, могут считываться в виде строк или в виде BLOB.

Такие значения могут выводиться в виде шестнадцатеричных или десятичных чисел. Шестнадцатеричные числа начинаются со знака $, а десятичные – со знака #. Например,

PrintStart = $1B-$40,$1B-$74-$11,$1B-$33-$00 
PrintFrame = #196#179#218#194#191#195#197#180#192#193#217

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

PrintUnderlineOff = $1B-$2D-$00
        

Перечислимый тип данных

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

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

Например, SERIAL, PARALLEL, KEYBOARD, PRINTER, TCPIP и TCPIPONDEMAND являются фиксированным набором значений, используемым для определения типа порта.

Групповые параметры

Наряду с простыми параметрами в инициализационных файлах используются групповые параметры. Групповые параметры объединяют несколько параметров, для каждого из которых указано значение.

Например,

Code = (Char = '3', Sequence = $04)
      

В этом примере групповой параметр Code объединяет параметры Char и Sequence.

В групповых параметрах можно реализовывать вложенность. В этом случае элементами групповых параметров являются другие групповые параметры. Например,

Групповой параметр = (
  Простой параметр1 = Значение2, 
  Групповой параметр2 = (
    Простой параметр3 = Значение3
  ), 
  Параметр4 = Значение4 …)
      

В групповые параметры могут включаться простые или групповые параметры с одинаковыми названиями, но разными значениями.

Групповые параметры могут использовать три формы записи:

Однострочная форма записи

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

Групповой параметр = (Параметр1 = Значение1, Параметр2 = Значение2 …)
        

Например,

Port = (Type = KEYBOARD)
        

Использование однострочной формы записи группового параметра позволяет включать в групповой параметр другие групповые параметры.

Например,

IdentifierCode = (Part = (Type = RANGE, Min = 1, Max = -1))
        

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

Многострочная форма записи

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

Групповой параметр =( 
  Параметр1 = Значение1, 
  Параметр2 = Значение2,
  Параметр3 = Значение3, 
       … 
  Параметр n = Значение n 
)

Например,

Port = ( 
  Type = SERIAL Name = 'COM1', 
  BaudRate = 4800, 
  ByteSize = 8, 
  StopBits = 1, 
  Parity = Even 
)

В этом примере групповой параметр Port включает в себя простые параметры Type, Name, BaudRate, ByteSize, StopBits и Parity.

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

Например,

Identifier = ( 
  Type = MC Timeout = 5000,
  Length = 1, 
  Prefix = $3C, 
  Code = (
    Char ='1', Sequence = $02
  ), 
  Code = (
    Char ='2', Sequence = $03
  ), 
  Code = (
    Char ='3', Sequence = $04
  ), 
  Code = (
    Char = '4', Sequence= $05
  ), 
  Code = (
    Char = '5', Sequence = $06
  ), 
  Code = (
    Char = '6', Sequence = $07
  ), 
  Code = (
    Char = '7', Sequence = $08
  ), 
  Code = (
    Char = '8', Sequence = $09
  ), 
  Code = (
    Char = '9', Sequence = $0A
  ), 
  Code = (
    Char = '0', Sequence = $0B
  ), 
  Suffix = $1C )
        

Дополнительная форма записи

Для обеспечения обратной совместимости с ранними версиями программы используется еще одна форма записи:

[Групповой параметр] 
  Параметр1 = Значение1 
  Параметр2 = Значение2 
  Параметр3 = Значение3 

  Параметр n = Значение n

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

Например,

[Port] 
  Type = SERIAL 
  Name = 'COM1' 
  BaudRate = 4800 
  ByteSize = 8 
  StopBits = 1 
  Parity = Even

Предупреждение

Использование этой формы записи не допускает вложенности групповых параметров.

Использование комментариев

В инициализационные файлы можно включать комментарии. Комментарии могут содержать информацию о назначении параметров, возможные значения параметров или диапазон возможных значений, а также другие пояснения.

Используемые комментарии могут быть строковыми или блочными.

Строковые комментарии начинаются знаками // или -- и продолжаются только до конца строки.

Например,

BaseRotatePosition = 0 // положение по умолчанию. Возможные значения 0 и 180

или

-- Действие при нажатии в левый верхний угол главной формы. Возможные значения None (нет действия), Rotate (перевернуть экран) и Next (перейти на следующий экземпляр POS-а) HotAction = None

Блочные комментарии могут включать несколько строк из произвольных символов.

Блочный комментарий открывается фигурной скобкой { или символами /*. Блочный комментарий продолжается до закрывающей фигурной скобки } или символов */. Внутри самого комментария символы } или */ встречаться не должны.

Например,

{ Интервал проверки соединения. Задается в миллисекундах. Минимальное значение – секунда (1000 мс). Если параметр не задан, то интервал по умолчанию – 15 секунд }

или

/* Интервал проверки соединения. Задается в миллисекундах. Минимальное значение – секунда (1000 мс). Если параметр не задан, то интервал по умолчанию – 15 секунд */

С помощью комментариев можно сделать один или несколько параметров неиспользуемыми. Например,

//Key = (Number = 002, Sequence = $3C)

Особенности считывания параметров

Параметры устройств могут быть обязательными или необязательными. Если обязательный параметр отсутствует, то программа выдает сообщение об ошибке.

Если значение обязательного или необязательного параметра задано неправильно, то программа выдает сообщение об ошибке.

При обнаружении неизвестного или лишнего параметра программа выдает сообщение об ошибке.

В один параметр можно включить несколько одноименных параметров. Возможность использования одноименных параметров определяется для конкретных параметров. Для некоторых параметров можно указывать допустимые значения или диапазон допустимых значений.

Регистрация устройств в программе Tillypad Manager

Для регистрации устройств, входящих в состав комплекса, используются справочники Программные модули и Устройства .

В справочнике Программные модули накапливаются сведения о драйверах устройств (программных модулях), используемых в системе. Для каждого программного модуля описываются его основные параметры и указываются связи с другими программными модулями. Для каждого программного модуля должны быть указаны подключающие модули (драйверы родительских устройств или загрузчиков), а также могут быть указаны используемые модули, если данный модуль применяет другие программные модули (например, библиотеки).

В справочнике Устройства описываются особенности конкретных устройств.

Информация о параметрах создаваемого устройства автоматически добавляется из справочника Программные модули . Затем в эти параметры можно внести необходимые изменения, отражающие особенности конкретного устройства.

Предупреждение

Если параметры программного модули изменились, то параметры устройства, созданного до изменения параметров программного модуля, не изменяются. Чтобы учесть изменения параметров программного модуля, необходимо вручную изменить параметры устройства.

Управление доступом к устройствам

В системе Tillypad обеспечена возможность выполнения пользователем ограниченного перечня операций на определенном устройстве. В том числе возможен полный запрет доступа к устройству (невозможность выполнения любых операций). Для управления доступом устройствам присваиваются грифы доступа.

Возможность доступа пользователя к устройству или возможность выполнения пользователем каких-либо операций на конкретном устройстве зависит от настроек доступа, выполненных в программе Tillypad Manager.

Мониторинг состояния устройств

Для проведения мониторинга устройств комплекса предусмотрена функция опроса состояний устройств. Объем передаваемых сведений определяется типом устройств и способом их подключения. Например, если для подключения устройства используется последовательный порт, то такое устройство может возвращать только сообщения о своей готовности или неготовности. Использование для подключения принтера порта LPT позволяет получать сообщения об отсутствии бумаги в принтере. Объем сведений о состоянии устройства зависит и от особенностей драйвера этого устройства.

Мониторинг состояния устройств проводится в программе Tillypad Manager. Для любого устройства пользователь может открыть окно консоли, где можно просмотреть протокол работы устройства и получить информацию о его текущем состоянии. Для устройства с экраном (POS-терминала, мобильного POS) пользователь может открыть окно просмотра экрана, где можно увидеть отображение экрана устройства и, при необходимости, выполнить операции на этом экране.

Для печатающих устройств можно просмотреть список печатных заданий и состояние их выполнения.

Для любого устройства также можно просмотреть протокол ошибок, возникавших в процессе его работы.

Параметр Port

Для функционирования устройства в системе Tillypad необходимо обеспечить возможность обмена информацией этого устройства с системой. Например, принтер может быть подключен к COM-порту или LPT-порту компьютера, а в некоторых случаях – и непосредственно к локальной вычислительной сети.

Способ подключения устройства описывается групповым параметром Port. Этот групповой параметр используется во всех драйверах устройств, поэтому его параметры рассматриваются отдельно от остальных параметров устройств. В групповой параметр Port обязательно включается параметр Type, а также другие необходимые параметры.

  • Type – тип порта, используемый для подключения устройства к комплексу. Указывается в виде строки символов. Является обязательным параметром. Может принимать значения KEYBOARD, SERIAL, PARALLEL, TCPIP, TCPIPONDEMAND или PRINTER. Порты используются для ввода или вывода информации.

Тип портаВводВывод
KEYBOARDДаНет
SERIALДаДа
PARALLELНетДа
TCPIPДаДа
TCPIPONDEMANDНетДа
PRINTERНетДа

Тип порта KEYBOARD

Тип порта KEYBOARD используется только для ввода информации с клавиатуры. При выборе этого типа порта указывать какие-либо параметры не требуется.

Порт типа KEYBOARD перехватывает данные, введенные с клавиатуры компьютера. Для порта, относящегося к этому типу, не имеет значения, к какому физическому порту (PS/2 или USB) подключена клавиатура конкретного компьютера.

Тип порта SERIAL

Тип порта SERIAL позволяет описывать как физические порты компьютера, так и порты, создаваемые при подключении устройств через порт USB или с использованием протокола Bluetooth. Порты типа SERIAL могут использоваться для ввода или вывода информации.

Параметры последовательного порта:

  • Name – название порта. Указывается в виде строки символов. Является обязательным параметром.

  • BaudRate – скорость передачи данных, доступная для устройства. Указывается в виде строки символов. Может принимать значения «4800», «9600», «19200», «38400» и так далее.

  • ByteSize – размер передаваемого байта. Указывается в виде целого числа. Может принимать значения «7» или «8».

  • StopBits– количество стоп-битов. Указывается вещественным числом. Может принимать значения «1», «1,5» или «2».

  • Parity – порядок контроля четности передаваемой или принимаемой информации. Указывается в виде строки символов. Может принимать значения «None», «Odd», «Even», «Mark» или «Space».

  • CheckDSR – признак необходимости проверки модемного сигнала DSR. Указывается в виде логического значения. Может принимать значения «True» или «False».

  • CheckCTS – признак необходимости проверки модемного сигнала CTS. Указывается в виде логического значения. Может принимать значения «True» или «False».

  • CheckReady – признак необходимости проверки готовности порта по наличию сигналов DSR и/или CTS. Указывается в виде логического значения. Может принимать значения «True» или «False».

  • ReadyTimeOut – продолжительность паузы для ожидания готовности порта. Указывается в виде целого числа. Выражается в миллисекундах.

  • WritePerByte – признак побайтовой передачи данных. Указывается в виде логического значения. Может принимать значения «True» или «False».

Тип порта PARALLEL

Тип порта PARALLEL позволяет описывать только физические параллельные порты компьютера. Параллельный порт используется только для вывода информации.

Параметры параллельного порта:

  • Name – название порта. Указывается в виде строки символов. Является обязательным параметром.

  • ReadyTimeOut – продолжительность паузы для ожидания готовности порта. Указывается в виде целого числа.

Тип порта PRINTER

Тип порта PRINTER описывает принтеры, подключенные к компьютеру непосредственно через драйвер операционной системы Microsoft Windows или с помощью локальной вычислительной сети (ЛВС). Порт принтера используется только для вывода информации.

Параметры порта принтера:

  • Name – название принтера. Указывается в виде строки символов. Значение параметра должно содержать сетевое имя принтера в виде \\ServerName\PrinterName.

Тип порта TCPIP

Тип порта TCPIP предназначен для вывода информации на устройства, подключенные к локальной вычислительной сети (ЛВС). Этот тип порта используется для поддержания постоянного соединения с устройством, подключенным по ЛВС. Если соединение отсутствует, то производится попытка восстановления соединения с этим устройством. Порт TCPIP используется для ввода и вывода информации.

Параметры порта TCPIP:

  • Type – тип порта для физического подключения устройства.

  • Name – имя сервера. Указывается в виде строки символов. Значение параметра должно содержать сетевое имя хоста в виде \\ServerName.

  • Port – номер или название порта. Указывается в виде строки символов.

Тип порта TCPIPONDEMAND

Тип порта TCPIPONDEMAND предназначен для вывода информации на устройства, подключенные с помощью локальной вычислительной сети (ЛВС). Этот тип порта используется для временного соединения с устройством, подключенным по ЛВС. Соединение устанавливается для периодической проверки готовности устройства, а также при появлении задания печати, которое должно быть выведено на устройстве, подключенном с помощью порта этого типа. После завершения выполнения задания соединение обрывается.

Порт TCPIPONDEMAND используется только для вывода информации.

Параметры порта TCPIPONDEMAND:

  • Name – имя сервера. Указывается в виде строки символов. Должно указываться в виде \\server.

  • Port – номер или название порта. Указывается в виде строки символов.