POSXML - POSXML
Эта статья нужны дополнительные цитаты для проверка.Июнь 2016 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
POSXML (аббревиатура от пмазь Ож Sэль еИксухоженный MArkup Language) - это язык программирования, основанный на XML, который используется для создания приложений для POS терминал.
Обычно язык программирования используется для разработки таких приложений C или же C ++. Основное назначение POSXML - упростить разработку приложений для POS-терминалов. Он содержит набор инструкций и предварительно запрограммированных команд, которые позволяют напрямую взаимодействовать с машиной, что приводит к значительному сокращению времени разработки приложений.
Особенности языка
Структура POSXML
POSXML организован и структурирован в виде тегов, показывающих уровни и подмножества набора команд и инструкций, которые образуют логическую структуру приложения POSXML.
Пример:
<!-- Variables declaration --><строковая переменная значение ="" переменная ="sTicketInfo"/><строковая переменная значение ="" переменная ="sCityInfo"/><целочисленная переменная значение ="0" переменная =«iQtdTickets»/><целочисленная переменная значение ="0" переменная ="iInvalidInfo"/> <!-- Function Display MAIN Menu --><функция имя ="fMainMenu"> <целочисленная переменная значение ="0" переменная =«iOption»/> <!-- Main Menu --> <меню options =«ГЛАВНОЕ МЕНЮ: 1. ПРОДАЖА БИЛЕТОВ 2. ОТЧЕТ 3. ВЫХОД» переменная ="$ (iOption)"/> <!-- 1.SALE OF TICKETS --> <если оператор ="равно" значение ="1" переменная ="$ (iOption)"> ... </if> ... </function>
Скомпилированный язык
Подобно подавляющему большинству существующих языков программирования, POSXML компилируется в определенном формате для уменьшения размера файла, что позволяет запускать приложение на POS-терминале с использованием инфраструктуры (виртуальной машины).
При компиляции программа, написанная на POSXML, становится набором байт-кодов, которые интерпретируются виртуальной машиной на POS-терминале, что приводит к реализации на POS-терминале.
Пример:
<дисплей линия ="0" столбец ="0" сообщение =«Пример байт-кода» />
Скомпилированный байт-код:
d0 x0A 0 x0A Пример байт-кода x0A x0D
Синтаксис
Команды и инструкции POSXML, такие как соответствие использованию заглавных и строчных букв (с учетом регистра), приобретаются в процессе обучения. Некоторые команды, принадлежащие этому языку, не требуют параметров, в отличие от других команд, которые требуют ввода для взаимодействия с машиной.
Примеры:
Команды, не требующие инструкций или параметров.
<network.hostdisconect/><чистый дисплей /><ключ ожидания />
Команды, требующие инструкций и параметров для взаимодействия с оборудованием.
<дисплей линия ="1" столбец ="1" сообщение =«POSXML» /><меню переменная ="$ (var1)" options =«МЕНЮ 1. Первая строка 2. Вторая строка 3. Третья строка»/><ждать миллисекунды ="1000" />
Имена, присвоенные функциям, переменным и страницам, также должны подчиняться правилам, написанным заглавными и строчными буквами, поэтому, если разработчик создает функцию с именем «Calcula_digito», он не сможет вызвать переменную через «Calcula_Digito». Вызов функции или страницы переменной должен соответствовать точному имени, присвоенному программистом.
Команды и инструкции
Поскольку это структурированный язык, основанный на XML, POSXML - это язык, который постоянно развивается, новые команды и инструкции могут быть добавлены в вашу библиотеку в любое время. Первоначально в языке было всего два десятка базовых команд для создания функционального приложения на POS-терминале с использованием нескольких ресурсов: только базовый дисплей (ЖК-дисплей), клавиатуру, устройство чтения магнитных карт и принтер.
С развитием языка теперь доступно почти сотня команд и инструкций для работы с файлами, изображениями, математическими операторами, функциями для управления переменными типа String, определения переменных, логических операторов, классов для работы с протоколом ISO 8583 ( Стандарт протокола для обмена информацией при транзакциях с кредитными картами), среди прочего.
Переменные и типы данных
Переменные в POSXML типизированы; есть только два типа: целые и строковые. POSXML ограничивает количество объявленных переменных до 512.
Эти переменные объявлены глобальными, т.е. они используются на всех запланированных страницах программы POSXML в процессе выполнения.
Примеры:
Переменная строкового типа:
<!-- Declaring a string type variable containing: "http://en.wikipedia.org/wiki/posxml" --><строковая переменная значение ="http://en.wikipedia.org/wiki/posxml" переменная ="URL" /><!-- Accessing the content of the declared variable --><дисплей линия ="0" столбец ="0" сообщение ="$ (url)" />
Переменная целочисленного типа:
<!-- Declaring an integer type variable containing: "0" --><целочисленная переменная значение ="0" переменная ="Я ценю" /> столбец ="0" линия ="0" сообщение ="Введите сумму:" переменная ="$ (iValue)" />
Вызов переменной, которая объявлена в памяти, выполняется $ (name_of_the_variable), независимо от ее типа.
Также возможно преобразовать переменную одного типа в переменную другого типа. В POSXML для этого используются команды inttostring и stringtoint.
Примеры:
<целочисленная переменная значение ="1" переменная ="iOpcao_Tipo_Inteiro" /><строковая переменная значение ="" переменная ="sOpcao_Tipo_String" /> целочисленная переменная ="$ (iOpcao_Tipo_Inteiro)" stringvariable ="$ (sOpcao_Tipo_String)" />
Файловая система
При написании приложения для POS-терминала разработчик сталкивается с необходимостью записи в конкретную файловую систему оборудования. Язык POSXML работает с файлами типа WALK dbFile (файловая система, определяемая структурой, которая интерпретирует программу, скомпилированную POSXML). Эта файловая система WALK dbFile использует формат: ключ = буфер n ключ = буфер n
, в основном формат текстовых файлов в среде Unix, где п
используется для обертывания. В языке POSXML есть 8 основных команд для работы с файлами в POS-терминале, они есть.
- редактировать файл
- файл для чтения
- readfilebyindex
- удалить файл
- file.open
- file.write
- file.read
- file.close
Примеры:
имя файла ="test.txt" ключ ="$ (sChave)" значение ="$ (sValor)" /> <файл чтения имя файла ="test.txt" ключ ="$ (sChave)" variabledestination ="$ (sRetorno)" /> имя файла ="test.db" index ="0" variablekey ="$ (var1)" значение переменной ="$ (var2)" переменная возврат ="$ (var3)" /> имя файла ="test.txt" />
Примеры кода
Традиционный "Hello World"
<!-- An example application that shows the phgrase "Hello World" on the display. --><!-- The command "display" shows a message in a row and column specific. --><дисплей линия ="3" столбец ="0" сообщение ="Привет, мир" /><!-- The command "waitkey" waits till the operator press someone key for continue the execution. --><ключ ожидания />
Меню, функции и впечатления
<строковая переменная значение ="" переменная ="stringName" /><строковая переменная значение ="" переменная ="строковое значение" /><целочисленная переменная значение ="0" переменная ="integerValue" /><целочисленная переменная значение ="0" переменная ="integerOption" /> <!-- The command menu is used to show a menu in the terminal's display. The captured value is put in variable. --><меню переменная ="$ (integerOption)" options =" Меню 1) Основная функция 2) Функция печати" /><если переменная ="$ (integerOption)" оператор ="равно" значение ="1" > <!-- The command callfunction is used to call a function defined with the function instruction. --> имя ="Главный" /></if> <если переменная ="$ (integerOption)" оператор ="равно" значение ="2" > <!-- The command callfunction is used to call a function defined with the function instruction. --> имя ="Распечатать" /></if> <!-- The command function is used to make functions in PosXml Application. --><функция имя ="Главный" > Терминал показывает маску с запятой и точками при нажатии цифровых клавиш. Полученное значение умножается на 100 и помещается в переменную без запятой и точек. --> переменная ="$ (integerValue)" линия ="0" столбец ="0" сообщение ="Ввод значения:" /> <чистый дисплей /> <!-- The command inttostring is used to convert an integer variable in a string variable. --> переменная целое число ="$ (integerValue)" переменная строка ="$ (stringValue)" /> <дисплей линия ="2" столбец ="0" сообщение ="Значение:" /> <дисплей линия ="3" столбец ="0" сообщение ="$ (stringValue)" /> <ключ ожидания /></function> <функция имя ="Распечатать" > Формат указывается в параметре формата. Полученное значение помещается в переменную. --> переменная ="$ (имя_строки)" линия ="0" столбец ="0" сообщение ="Введите ваше имя:" формат =«АААААААААА» / > <печать сообщение ="$ (имя_строки)" /> <!-- The command paperfeed is used to advance paper of the terminal's printer. --> <подача бумаги /></function>
Работа с файлом POS
<строковая переменная значение ="" переменная ="stringRet" /><строковая переменная значение ="" переменная ="stringWriteKey" /><строковая переменная значение ="" переменная ="stringWriteValue" /> переменная ="$ (stringWriteKey)" линия ="0" столбец ="0" сообщение ="Введите ключ:" формат =«АААААААААА» /> переменная ="$ (stringWriteValue)" линия ="2" столбец ="0" сообщение ="Введите значение:" формат ="9999999999" /> Формат файла в 'формате Walk Db': ('ключ = значение nключ = значение n ...'). --> имя файла ="test.txt" ключ ="$ (stringWriteKey)" значение ="$ (stringWriteValue)" /> Формат файла в 'формате Walk Db': ('ключ = значение nключ = значение n ...'). Если файл или ключ существует, значением является пробел ''. --><файл чтения имя файла ="test.txt" ключ ="$ (stringWriteKey)" variabledestination ="$ (строкаRet)" /><!-- The command deletefile is used to remove a file from the terminal's memory. --> имя файла ="test.txt" /><!-- The command joinstring is used to join firstvalue and secondvalue in variabledestination. --><соединение firstvalue ="Результат:" второе значение ="$ (строкаRet)" variabledestination ="$ (строкаRet)" /><чистый дисплей /><дисплей линия ="4" столбец ="0" сообщение ="$ (stringRet)" /><ключ ожидания />
Пример с while "Пока"
<!-- The command "stringvariable" creates in memory one variable of a type string, in this case the name is "sData". --><строковая переменная значение ="" переменная ="stringData" /><строковая переменная значение =«KEY_CANCEL» переменная ="stringKey" /> когда значение sKey отличается от KEY_CANCEL. --><пока переменная ="$ (stringKey)" оператор ="равно" значение =«KEY_CANCEL» > <!-- The command cleandisplay is used to clean the terminal's display. --> <чистый дисплей /> и сохраните это значение в «variabledestination». --> формат ="д / м / гг ч: м: с" variabledestination ="$ (stringData)" /> <!-- The command "display" shows a message in a row and column specific. --> <дисплей линия ="2" столбец ="0" сообщение ="$ (stringData)" /> В случае, если не будет жестких ключей, будет возвращено значение «KEY_CANCEL». --> <ключ чтения миллисекунды ="800" переменная возврат ="$ (stringKey)" /></while><дисплей линия ="2" столбец ="0" сообщение ="$ (stringKey)" /><ключ ожидания />