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

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

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

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

Сообщение ssadragon » 24.05.2013 11:12:49

Интересно! Интересно!
4 ревизия :(
Развитие имеет библиотека или ... нет?
Документация тут - http://w7site.ru/fpc/kkm
:(
Не работает ссылочка!
ssadragon
постоялец
 
Сообщения: 131
Зарегистрирован: 03.12.2012 20:21:35

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

Сообщение alexs » 24.05.2013 23:49:45

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

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

Сообщение ssadragon » 25.05.2013 07:44:34

А у меня чет не очень работает.
При выборе режима, он не применялся и соответственно необходимые компоненты не становились доступными. вот так.
Тестируемым аппаратом был Принтер документов Fprint-22
ssadragon
постоялец
 
Сообщения: 131
Зарегистрирован: 03.12.2012 20:21:35

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

Сообщение alexs » 25.05.2013 10:30:54

Может он в блоке был?
Что штатная атоловская утилита? Похожее поведение у аппарата в тот момент, когда он ожидает Z-Отчёта...
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3476
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

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

Сообщение ssadragon » 25.05.2013 11:54:57

alexs писал(а):Может он в блоке был?

Да как бы не должен, я до этого Атоловским драйвером печатал на нем.
ssadragon
постоялец
 
Сообщения: 131
Зарегистрирован: 03.12.2012 20:21:35

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

Сообщение Attid » 27.05.2013 12:26:36

кстати alexs, а как он ведет себя если приложение убить ? порт освободиться ?
а то у меня на синасере блокируется до перегрузки, и ничем к этому порту не подключится =(
это на лине если что.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2578
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

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

Сообщение alexs » 27.05.2013 21:54:53

Во первых - порт каждый раз открывается и закрывается во время операций.
Во вторых - в зависимости от операционки.
В винде не будет блокировки.
В линухе при неудачном стечении обстоятельств может остаться lock-file. Его надо вручную убивать. Это уже особенность синапсиса.
Но из-за того что каждый раз порт открывается/закрывается вероятность маленькая.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3476
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

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

Сообщение Attid » 27.05.2013 23:02:12

про во первых .
ну я чисто логически у себя выбрал одно открытие. чек идет за чеком, как в макдональце ну и каждый раз открывать закрывать это лишние 2 операции.
а на чек и того больше. или продать 2 позиции и закрыть чек + напечатать что-то сверху итого 4 операции или с открытием их уже 16.

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

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

Сообщение alexs » 29.05.2013 00:12:31

Я просто побоялся, что не всегда получится коректно поддерживать статус оборудования при постоянно открытом порте. А когда передёргиваю - то статус надёжнее получаю.

Лок файл - это особенность синапсиса. Это надо в этих компонентах ковырять.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3476
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

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

Сообщение Attid » 03.06.2013 09:11:18

:beer: интересно есть такой смайлик ?

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

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

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

Сообщение alexs » 03.06.2013 19:40:53

Если твои координаты верны - то по прямой - 88 км :-)
А как сам ККМ - заработал?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3476
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

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

Сообщение ssadragon » 01.07.2013 14:57:24

alexs писал(а):Похожее поведение у аппарата в тот момент, когда он ожидает Z-Отчёта...

Да при снятии Z-отчета устанавливается режим 3, и после этого GetStatus некорректный.
Мучились мы долго, пока не сделали размаскировку полученного ответа, т.к. для снятия отчета необходимо войти в режим "Отчета с гашением", а отправляется на него 03, то мы маскируем это как "10 03", то и ответ от него приходит в том же вида "10 03". Вот из-за этого у нас режим получался - 0 а подрежим - 1, а когда сделали размаскировку ответа то все встало на свои места (режим - 3 подрежим - 0) и все заработало.
P.S. кстати без размаскировки можно и другие ответы не правильно парсить, например текущий день будет 10 или 03, либо минута 10 или 03, либо секунда 10 или 03.
ssadragon
постоялец
 
Сообщения: 131
Зарегистрирован: 03.12.2012 20:21:35

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

Сообщение alexs » 02.07.2013 15:54:44

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

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

Сообщение ssadragon » 02.07.2013 18:24:17

alexs писал(а):Можно поподробнее?

Пример (примерный) ответа на GetStatus он там вначале посылает текущую уст. дату и время, дк вот если в этом ответе например время будет 13:10:23, то касса пришлет в таком виде 13 10 10 23 (это уже смещение на один), а если еще в дата будет - 10-03-13 то касса пришлет такое 10 10 10 03 13 и это еще смещение на два. Вот потом и получается что мы не правильно считаем данные в свои переменные(например ту же дату уже неправильно считаем если не сделаем размаскировку)

Там в описании драйвера сказано что нужно делать маскировку отправляемых данных на ККМ, но ни чего не сказано про размаскировку получаемых ответов.
Так вот, загвоздка как раз в этом и была, что необходимо выполнять как бы маскировку только в обратную сторону.
В вашей компоненте маскировку отправляемых данных выполняет функция
function TAtollKKM.MakeCommand(AData: string): string;
Я эту так сказать размаскировку выполнил вот так:
Код: Выделить всё
Function DeMask(AData: Ansistring): Ansistring;
Var
  i:        Integer;
  B:        Byte;
  DLE_Flag: Boolean;
Begin
  Result   := '';
  DLE_Flag := False;
  For i := 1 To length(AData) Do
  Begin
    If DLE_FLag Then
      DLE_Flag := False
    Else
    If AData[i] = sDLE Then
    Begin
      If i < length(AData) Then
        If AData[i + 1] In [sDLE, sETX] Then
        Begin
          Result   := Result + AData[i + 1];
          DLE_Flag := True;
        End;
    End
    Else
      Result := Result + AData[i];
  End;
End;

И после этого все заработало как часы :D
ssadragon
постоялец
 
Сообщения: 131
Зарегистрирован: 03.12.2012 20:21:35

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

Сообщение *Rik* » 11.11.2013 10:48:16

Ссылка не работает, тоже хочется посмотреть библиотеку...
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 353
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru