Библиотека для работы с ККМ АТОЛ

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Библиотека для работы с ККМ АТОЛ

Сообщение alexs »

Всем добрый день.
Реализовал библиотеку для работы с ККМ от производителя АТОЛ.
Умеет регистрировать чеки/отменять, снимать отчёты
Работает с регистрами кассового аппарата.
Всё кросплатформенно. Всё - 100% паскаль.

Программный интерфейс библиотеки стараюсь делать максимально похожим на английский вариант com-объекта от АТОЛ.
Начал писать документацию по библиотеке - http://w7site.ru/fpc/kkm/
Если есть у кого интерес - буду рад участию.
-----
исходники на github - https://github.com/lalexs75/ecr
Последний раз редактировалось alexs 20.11.2018 08:24:13, всего редактировалось 1 раз.
alexkam
постоялец
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Сообщение alexkam »

Добрый день! А где можно посмотреть саму библиотку?
Хотелось бы также реализовать библиотеку от АТОЛ для сканеров шрих-кода.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

alexkam писал(а):Добрый день! А где можно посмотреть саму библиотку?

Ещё на SVN не выкладывал. Скорее всего положу на шаманграде.
А что касается штрихкодов - в чём проблема? Они все умеют работать как эмултор кавиатуры. Я именно в этом режиме их использую. Проблем нет.
alexkam
постоялец
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Сообщение alexkam »

Хотелось бы работать через COM порт, чтобы можно было его передавать с локальной машины на терминальный сервер.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

А разве клавиатурный поток не передаётся?

Добавлено спустя 11 часов 23 минуты 11 секунд:
Выложил исходники на шаманград - http://shamangrad.ru/project.php?act=view&prj=ecr_atol.
Документация тут - http://w7site.ru/fpc/kkm.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Обновил документацию на сайте. Включил в неё небольшие примеры.
count
незнакомец
Сообщения: 9
Зарегистрирован: 06.03.2011 20:41:15

Сообщение count »

Круто!
Делал реализацию поддержки ФР через их OLE, но такой вариант намного приятнее.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

У них нет ОЛЕ для линуха :-)
Кстати - формат протокола достаточно толковый. А вот его OLE реализация - бестолковая.
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

круть =) надо будет глянуть. я себе тоже писал. но у меня был писанный клас под штрих. и я на него сверху одел атоловский.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Штрих тоже наверное не сложно прикрутить.
Но у меня нет аппарата для тестирования :-)
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

да принцип похож, правда со штрихом у меня сразу все заработало и проблем не было, а вот с атолом через неделю вылезли проблемы при большой нагрузке, но там я так понял виноват синасер был, что-то с задержками, точнее уже не помню.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Подробнее можно - чего было?
Вдруг и я столкнусь...
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

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

поставил что если ошибка по таймауту, то еще раз ждать ответ. не красиво конечно вышло, но быстро и рабоче. а дома ошибка не воспроизводилась.
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

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

ошибку нашел, у тебя подключается на одной скорости. вне зависимости от настроек скорости порта =)

ГЫ хотел подглядеть у тебя как ты определяешь максимальную длину строки. а ты не определяешь.

ЗЫ а чего ты не вынес все "ReadACK;SendEOT;ReadENQ;SendACK;" в отдельную процедуру куда передаешь команду оно все делает и отдает обратно ? кол-во строк кода уменьшилось бы вдвое
правда процедура большая и страшненькая получается, но если что все ошибки в ней :lol:
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

1. Особо не получилось рулить скоростью. Постоянно ошибку получал.
2. Максимальная длина строки - это где?
3. Это наследие - когда начинал всё это делать - было удобнее отлаживать. Потом не стал переделывать.
Сейчас отдал программу на тестирование заказчику - по результатам тестирования будет рефакторинг кода. Поэтому и хочу собрать до этого момента статистику.
Ответить