Closed GoogleCodeExporter closed 9 years ago
Временные параметры (время ожидания между
запросом/ответом) вообще здесь самые
важные, сейчас столкнулся с проблемой
подкодящее время для режима чекового
принтера абсолютно не подходят для режима
фискального регистратора. Вообще в
спецификации в версии 1.7 (она и для
ШТРИХ-МИНИ-ФР-К) сказано так:
"
По умолчанию устанавливаются следующие
параметры порта: 8 бит данных, 1 стоп-
бит, отсутствует проверка на четность,
скорость обмена 4800 бод и тайм-аут ожидания
каждого байта, равный 50 мс. Две последние
характеристики обмена могут быть изменены
командой от хоста.
Тайм-аут ожидания реакции ФР на запрос ENQ не
должен быть меньше 10 с.
Минимальное время между приемом
последнего байта сообщения и передачей
подтверждения, и между приемом ENQ и
реакцией на него равно тайм-ауту приема
байта.
"
Пока жёстко соблюсти это руководство у
меня не получается, как мне кажется
проблема в алгоритме обмена. В данный
момент он в части ожидания ответа от ФР не
соответсвует прилагаемой схеме (красным
нанесены переменные нашего проекта), то
есть POS ждёт ответа от ФР только промежуток
времени T5, а он в зависимости от посланной
команды может быть разным. Полностью
соответсвует спецификации T6 (50 мс),
вспомогательными являются T1 и T7, по идеи
они должны находятся в зависимости от T6 и
сильно повлиять на работу с ФР врядли
могут.
Думаю надо в эту сторону двигаться, если
будут мысли сообщите.
Original comment by svinin...@gmail.com
on 15 Jun 2010 at 9:45
Attachments:
Да Вы правильно поняли, для выполнения
фискальных функций используется класс
DeviceFiscalPrinterShtrihFR и необходимо вручную задать
в файле properties значения для machine.fiscalprinter (как
я понял для этого не сделан специальный
интерфейс, так как в основной версии пока
есть только один тип фискальных
регистраторов работающих через JavaPOS
драйвер).
Также необходимо в ресурсах внести шаблон
для фискального чека вида:
<?xml version="1.0" encoding="UTF-8"?>
<output>
<fiscalreceipt>
<message>------------------------</message>
#foreach ($ticketline in $ticket.getLines())
<line price="${ticketline.printPrice()}" units="${ticketline.printMultiply()}" tax="0">${ticketline.printName()}</line>
#end
<message>========================</message>
<total paid="${ticket.printTotal()}">Продажа за наличные</total>
</fiscalreceipt>
</output>
Для работы с ним пришлось внёсти много
изменений в исходный r353, основное это
добавлены методы для чтения сведениё о
коммандах и ошибках получаемых с ФР и
выводимых POS в консоли. Но пока работает с
ошибками, пытаюсь найти в чём проблема,
если будут мысли сообщите.
ВНИМАНИЕ: Так как работа кода связанна с
функциями имеющими доступ к фискальной
памяти ФР не в коем случае не используйте
фискализированный аппарат! Если какая-то
функция не было исполнена до конца (не был
закрыт чек или смена) и она блокирует
работу с ФР используйте стандартные
драйвер идущий в комплекте с аппаратом для
её выполнения (анулирования чека, закрытия
смены и т.п.) Также согласно использованной
в данном проекте лицензии LGPL разработчики
не несут каких либо гарантий за
использования данного кода в каких либо
целях. Прошу это учитывать при работе с
предоставляемым в рамках данного проекта
коде.
Original comment by svinin...@gmail.com
on 18 Jun 2010 at 4:47
Похоже реализованный алгоритм для
принтеров не подходит для фискальных
регистраторов. Предлагаю попробовать на
базе уже реализованной поддержки
фискальной функции для регистраторов Атол
(см. Issue 92) написать поддержку для протокола
Штрихов.
Original comment by svinin...@gmail.com
on 7 Feb 2011 at 8:26
[deleted comment]
Добрый день. Вы предлагаете использовать
JavaPOS или нативно разработать драйверы
именно под штрих-фр? Думаю, перспектив у
JavaPOS никаких нет ИМХО.
Original comment by akart...@gmail.com
on 15 Mar 2011 at 10:35
Я сам лично видел JavaPOS драйвер для
протокола Штрих-М, только не смог его
испытать, так как под рукой не было
фискальника. Так что если идти по пути
наименьшего сопротивления, то
использование уже готового драйвера более
эффективно. А вот разработать нативную
поддержку в Openbravo POS с нуля это достаточно
трудоёмкая задача. К тому-же если
необходимо полная поддержка всех функций
регистратора, то это потребует и переделки
самой программы, а не только модуля
подключения.
Хотя лично мне сделать нативную поддержку
гораздо интересней, но главное тоже, был-бы
фискальник под рукой :)
Original comment by svinin...@gmail.com
on 15 Mar 2011 at 3:59
Недели через 2-3 у меня возможно будет
нефискальный Штрих-М. Можно будет
попробовать JavaPOS драйверы подключить и
попробовать разобраться как в Issue 92. На
сколько я помню, то JPOS драйверы под Штрих-М
можно взять у производителя, но они очень
древние и уже давно не поддерживаются
самим производителем, впрочем, как и comm.jar
который тоже уже давно не поддерживается
под windows. Если вы видели другие драйверы, то
не могли бы вы поделиться ими для
экспериментов.
Original comment by akart...@gmail.com
on 16 Mar 2011 at 6:47
У меня была версия JavaPOS драйвера
датированная ноябрём 2009 года и среди
библиотек шедших с ним была rxtxSerial.dll, так
что под виндой должно работать. Как
появится фискальник пишите, вместе
попробуем разобраться.
Original comment by svinin...@gmail.com
on 16 Mar 2011 at 8:41
А Меркурии кто нибудь подключал? В
частности ЧПМ Меркурий-115?
Original comment by dmg...@gmail.com
on 19 Mar 2011 at 6:44
А разве в Меркурий-115 есть порт для
подключения к ПК?
Если у Вас есть этот аппарат и есть
описание протокола обмена к нему,
создавайте отдельную новую тему там и
обсудим возможности подключения.
Original comment by svinin...@gmail.com
on 19 Mar 2011 at 2:25
Решил на время, пока кто-то ещё не
присоединится к проекту или у меня у самого
не появится Штрих-ФР, убрать из кода
проекта поддержку фискальных
регистраторов Штрих-ФР. Начиная с r438 код
проекта официально не поддерживает режим
фискального регистратора для протокола
ШТРИХ-М, поддержка режима чекового
принтера осталась без изменения.
Original comment by svinin...@gmail.com
on 22 Mar 2011 at 6:39
Я начал перелопачивать драйвер для
Штрихов. Сейчас реализовал печать чека в
фискальном режиме (r456 в бранче bigur). При этом
сейчас сломана печать с нормальным
принтером.
Настройки параметров соединения (baudrate)
сейчас зашиты внутрь кода, я пока не
придумал куда воткнуть этот параметр для
конфигурирования. Видимо в конфиг-файл
придется.
Я попробовал всякие стресс-тесты, типа
выдергивания провода во время печати,
открыть чек на другой машине и подключить к
проверяемой, отключать и подключать ФР не
выключая POS. У меня все отрабатывает
корректно. Данные при этом остаются
целостные, в базу попадают ровно те же
значение что и в фискалку.
Это первый шаг, там еще кучи всего нету. Но
эту версию, у кого есть возможность -
тестируйте.
Да. Я тестировал на Штрих-ФР-К.
ВНИМАНИЕ! ПОЖАЛУЙСТА, НЕ ИСПОЛЬЗУЙТЕ ЭТОТ
КОД НА ЗАРЕГИСТРИРОВАННЫХ ФИСКАЛЬНЫХ
РЕГИСТРАТОРАХ!
Original comment by gennady....@gmail.com
on 5 Apr 2011 at 9:06
Обновил проект, появилась куча ошибок,
исправил. Приложение запускается, но при
попытке зайти в конфигурацию оборудования,
показывает : com.openbravo.pos.forms.BeanFactoryException:
java.lang.reflect.InvocationTargetException
Original comment by akart...@gmail.com
on 6 Apr 2011 at 7:57
Я вот сейчас не уверен, что ошибка связана с
моим коммитом. Прикрепите пожалуйста весь
traceback, и версию java.
Original comment by gennady....@gmail.com
on 6 Apr 2011 at 2:05
Коммит r457. Теперь печатаются X- и Z- отчеты.
Original comment by gennady....@gmail.com
on 7 Apr 2011 at 3:34
Я так думая baudrate для фискальных
регистраторов надо выводить на панель
настроек, там где выбирается тип
фискальника и указывается порт. Из опыта
работы знаю, что у каждого аппарата и у
каждого мастера ЦТО :) рабочее значения
этого параметра своё. Если возражений не
будет меняю интерфейс и добавляю поле baudrate.
Original comment by svinin...@gmail.com
on 9 Apr 2011 at 4:07
в branches\ есть 2 папки bigur и Stage-3rd. Я так понимаю
для тестов нужно юзать Stage-3rd ?
Original comment by akart...@gmail.com
on 10 Apr 2011 at 8:59
в bigur нет модуля ShtrihFR, а в Stage-3rd модуль
DeviceFiscalPrinterShtrihFR не измененный
Original comment by akart...@gmail.com
on 10 Apr 2011 at 9:02
в какой ветке репозитория правильные
модули для тестирования лежат ?
Original comment by akart...@gmail.com
on 10 Apr 2011 at 9:06
Я работаю в ветке bigur
(http://code.google.com/p/openbravoposru/source/browse/branches/bigur).
Модуль ShtrihFR там есть (src-pos/printer/shtrihfr).
Скачайте свежее обновление для
тестирования (r460).
Еще раз: не используйте на реальных
фискальных регистраторах. В этом драйвере
заведомо есть ошибки. Например, с
некорректной обработкой исключительных
ситуаций, как аварий, так и элементарно с
отсутствием бумаги в принтере. Дня через
два я закоммичу более стабильную версию и
приступлю к работе Штрих-ФР в режиме
принтера.
Будут какие-либо ошибки - пока пишите тут.
Более свободное обсуждение предлагаю
вести в рассылке: http://groups.google.com/group/openbravoposru
Original comment by gennady....@gmail.com
on 10 Apr 2011 at 9:22
Разработка в ветки
[http://code.google.com/p/openbravoposru/source/browse/branches/bigur
/branches/Stage-3rd] прекращена и всё из неё влиты в
[http://code.google.com/p/openbravoposru/source/browse/trunk /trunk],
теперь [http://code.google.com/p/openbravoposru/source/browse/trunk
эта ветка] является основной, если вводит в
заблуждение могу
[http://code.google.com/p/openbravoposru/source/browse/branches/bigur
/branches/Stage-3rd] удалить.
Специально для Генадия сделал ветку
[http://code.google.com/p/openbravoposru/source/browse/branches/bigur
/branches/bigur], где он ведёт разработку
поддержки Штрих-ФР. Так что для
тестирования этой функции скачивайте код
из ветки
[http://code.google.com/p/openbravoposru/source/browse/branches/bigur
/branches/bigur].
Original comment by svinin...@gmail.com
on 10 Apr 2011 at 9:33
Если не сложно, напишите пожалуйста, если
таковой имеется, полный svn путь к
исходникам для тестирования, для того
чтобы можно было на основе этих исходников
сделать netbeans проект для тестов. Или нужно
ручками с сайта исходники копировать и
обновлять? У меня сейчас есть проект
скаченный с http://openbravoposru.googlecode.com/svn/trunk/, он
самый стабильный, на сколько я понял. Так же
для попыток тестирования штрихов в
фискальном режиме, попробовал скачать svn
http://openbravoposru.googlecode.com/svn/branches/bigur/, но он мне
показался неполным, т.к. например в проекте
нет некоторых файлов, например того же
ShtrihFR. Или может быть такого полноценного
готового проекта для тестов штрихов в
фискальном режиме нет ? Прошу прощения за
глупый вопрос, но подскажите, что я делаю не
так?
Original comment by akart...@gmail.com
on 10 Apr 2011 at 11:55
Я пишу тут, но обсуждение как компилировать
проект не относится непосредственно к теме
работы Штриха в режиме ФР.
Так что после этого поста давайте
обсуждать тему сборки проекта в рассылке,
адрес я писал в предыдущем посте. Это чтобы
не засорять баг-трекер.
Действительно, готового полноценного
драйвера для работы со штрихом еще нет.
Есть только версия кода, над которым я
сейчас работаю каждый день. В этой версии
работает печать чека в режиме ФР, снятие X,Z
отчетов. Штрих в режиме простого принтера в
этой версии не работает.
Второй адрес репозитория вы использовали
совершенно правильно
(http://openbravoposru.googlecode.com/svn/branches/bigur/). Именно из
него надо делать проект и компилировать.
Что там Вас смущает? Какого _конкретно_
файла не хватает? Если можно, то укажите
пожалуйста полностью либо ошибку
компиляции, либо traceback при падении, если
такое наблюдается.
Еще раз, вопросы, которые не относятся к #74
давайте обсуждать в гугловской группе
(рассылка): http://groups.google.com/group/openbravoposru .
Прямо после этого поста по веткам и по
сборке проекта отвечайте пожалуйста туда.
Original comment by gennady....@gmail.com
on 10 Apr 2011 at 12:05
[deleted comment]
Мой первоначальный вариант кода работает
совершенно по другому алгоритму(он сейчас
в /trunk), алгоритм выложенный в /branches/bigur/
совершенно иной, по этому сравнивать их не
имеет смысла. Если испытания пройдут
успешно(а я уже уверен в этом), этот
алгоритм вернётся в основную ветку /trunk.
svn checkout http://openbravoposru.googlecode.com/svn/branches/bigur/
openbravoposru-bigur
Подтверждаю, код из /branches/bigur/ рабочий, если
есть конкретные вопросы по компиляции
задайте в http://groups.google.com/group/openbravoposru
попробуем ответить, но для начала выложите
сообщения об ошибках.
Original comment by svinin...@gmail.com
on 10 Apr 2011 at 3:51
Передаю эту тему Геннадию.
Original comment by svinin...@gmail.com
on 13 Apr 2011 at 10:17
Работа Штриха в режиме фискального
регистратора реализована в r464. Речь идет
только о печати чеков (продажа). Другие
функции (возврат товара, взяли деньги из
кассы, вернули деньги в кассу) не
реализованы. Другие функции будут
реализованы чуть позже, так как текущая
архитектура Openbravo POS этого не позволяет. Мы
тогда подумаем как лучше поменять API, и я
доделаю остальные операции.
Драйвер не работает в режиме простой
печати (дайте мне еще пару дней). С
понедельника я планирую текущий драйвер
поставить на какую-либо "боевую" кассу и
посмотрю как оно работает уже в реальном
режиме. После такого тестирования исправим
пару ошибок, которые я не углядел, и я смогу
драйвер рекомендовать.
Original comment by gennady....@gmail.com
on 13 Apr 2011 at 7:11
Original comment by svinin...@gmail.com
on 18 Apr 2011 at 5:35
Ну в r481 Штрих-ФР заработал и в режиме
принтера. Конечно без стилей текста,
изменения шрифтов, жирности шрифта. Без
картинок и штрих-кода. Буду реализовывать
по мере необходимости.
Сегодня один аппарат начнет работать уже в
боевом режиме. Подождем недельку да
посмотрим что будет.
Пока использование на реальных аппаратах
не рекомендую.
Original comment by gennady....@gmail.com
on 20 Apr 2011 at 9:07
Вижу по сегодняшним коммитам мы вместе
движемся к намеченному функционалу для
выпуска версии 0.3.0. Сегодня вечером
попробую локально слить ветку /branches/bigur с
основной /trunk
Завтра хочу протестировать в режиме
принтера получившейся код. Правда
фискальник реальный, но в режиме принтера
регистраций в памяти быть не должно. Если у
меня этот тест пройдёт, то ветки можно
будет сливать.
Original comment by svinin...@gmail.com
on 20 Apr 2011 at 11:23
Всё!!!
Начиная с r483, в коде нашего проекта есть
поддержка фискальных регистраторов
Штрих-ФР. Берите код из /trunk
Просим всех проверить как они с Openbravo POS
работают.Если будут замечания будем
исправлять. Все замечания по коду прошу
выкладывать в отдельных темах, если есть
сомнения нужно-ли создавать тему в Issues
прошу задавать вопросы в рассылке.
Original comment by svinin...@gmail.com
on 21 Apr 2011 at 2:07
Original issue reported on code.google.com by
akart...@gmail.com
on 15 Jun 2010 at 5:59