Класс для API АТОЛ «Драйвер ККТ версии 10»

Сканеры, кассы, ККТ и т.д.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7735
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 26 раз
Поблагодарили: 73 раза

Класс для API АТОЛ «Драйвер ККТ версии 10»

Сообщение Игорь Столяров »

Привет всем !

Класс работы с драйвером ККТ АТОЛ 10 на основе JSON заданий.
(форк класса ADMIN'а 2019 г.)

Класс рабочий, в комплекте примеры использования. Любые замечания и дополнения - приветствуются. :)
В FTP разделе форума создана папка: /_Books/Atol.KKT со всей сопутствующей документацией.

ВНИМАНИЕ !
Для работы с КМ (кодами маркировки) через JSON задания требуется прошивка ККТ 5.12 и выше (двухлетней давности).
На старых прошивках будет ошибка: Объекту 0x05C1E828 присвоен код ошибки 148 [Ошибка программирования реквизита 1023]

atol2.png
Вложения
Admin-2019.zip
Оригинальный класс 2019 г.
(27.92 КБ) 342 скачивания
Atol-2024-11-29.zip
Версия от 29.11.2024 г.
(82.93 КБ) 74 скачивания
Последний раз редактировалось Игорь Столяров 09 Декабрь 2024, 14:05, всего редактировалось 35 раз.
Make Clarion Great Again ! 😎
Аватара пользователя
Admin
Администратор
Сообщения: 4000
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 46 раз
Поблагодарили: 26 раз
Контактная информация:

ATOL драйвер 10.4.2

Сообщение Admin »

Кто нибудь уже трогал?
Не могу получить CSTRING из библиотеки.
Уже все танцы с бубном использовал.

Код: Выделить всё

    libfptr_create(*LONG fptr),LONG,RAW,PASCAL,PROC
    libfptr_error_description(LONG fptr, LONG pValue, LONG lValueSize),LONG,RAW,PASCAL,PROC
    ...
fptr          EQUATE(LONG)
LOC:ResultStr CSTRING(256)
LOC:Size      LONG
    ...
    libfptr_create(fptr)
    ...
    !тут какие то действия приводящие к 100% ошибке     
    ...
    LOC:Size = libfptr_error_description(fptr, ADDRESS(LOC:ResultStr), SIZE(LOC:ResultStr))
    MESSAGE(LOC:Size & ' ' & LOC:ResultStr)

Код: Выделить всё

DTOX_SHARED_EXPORT int DTOX_SHARED_CCA libfptr_error_description(libfptr_handle handle, wchar_t *value, int size);
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 4000
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 46 раз
Поблагодарили: 26 раз
Контактная информация:

ATOL драйвер 10.4.2

Сообщение Admin »

Код: Выделить всё

std::vector<wchar_t> errorDescription(32);
int size = libfptr_error_description(fptr, &errorDescription[0], errorDescription.size());
if (size > errorDescription.size())
{
    errorDescription.resize(size);
    libfptr_error_description(fptr, &errorDescription[0], errorDescription.size());
}

std::wcout << L"Ошибка - " 
           << errorCode 
           << L" [" << std::wstring(&errorDescription[0]) << L"]" 
           << std::endl;
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3247
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 14 раз
Поблагодарили: 46 раз
Контактная информация:

ATOL драйвер 10.4.2

Сообщение Дед Пахом »

А что это значит?
Admin писал(а): 18 Январь 2019, 10:36Не могу получить CSTRING из библиотеки.
Там вроде не CSTRING по логике, а STRING, причём в юникоде.
С уважением, ДП
Аватара пользователя
Admin
Администратор
Сообщения: 4000
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 46 раз
Поблагодарили: 26 раз
Контактная информация:

ATOL драйвер 10.4.2

Сообщение Admin »

Дед Пахом писал(а): 18 Январь 2019, 12:03STRING, причём в юникоде
Да спасибо, так и оказалось. До этого пробовал CSTRING в юникоде. Про string что то не подумал.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 4000
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 46 раз
Поблагодарили: 26 раз
Контактная информация:

ATOL драйвер 10.4.2

Сообщение Admin »

Как обычно поспешил. Все как обычно сишными DLL - CSTRING!
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 4000
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 46 раз
Поблагодарили: 26 раз
Контактная информация:

ATOL драйвер 10.4.2

Сообщение Admin »

Никто не начал писать под 10 драйвер?
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

ATOL драйвер 10.4.2

Сообщение vic7tar »

Ну если такое объявление:
DTOX_SHARED_EXPORT int DTOX_SHARED_CCA libfptr_error_description(libfptr_handle handle, wchar_t *value, int size);
то думаю, что должно быть такое объявление в кларионе:
libfptr_error_description(LONG fptr, *STRING pValue, LONG lValueSize),LONG,RAW,C,PROC
а строку передавать нужно в UTF16.
C10, Win10x64
Аватара пользователя
Admin
Администратор
Сообщения: 4000
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 46 раз
Поблагодарили: 26 раз
Контактная информация:

ATOL драйвер 10.4.2

Сообщение Admin »

vic7tar писал(а): 26 Июнь 2019, 16:12Ну если такое объявление
Уже все давно решено. Динамическая загрузка и т.д.
Сильно не спешу. Впереди полгода.
Просто спросил может кто уже все сделал :-)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7735
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 26 раз
Поблагодарили: 73 раза

ATOL драйвер 10.4.2

Сообщение Игорь Столяров »

Admin писал(а): 26 Июнь 2019, 16:23Уже все давно решено. Динамическая загрузка и т.д.
Круто ! Подскажете с чего вообще начать работу с ДТО10 ?
Make Clarion Great Again ! 😎
Аватара пользователя
Admin
Администратор
Сообщения: 4000
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 46 раз
Поблагодарили: 26 раз
Контактная информация:

ATOL драйвер 10.4.2

Сообщение Admin »

Игорь Столяров писал(а): 26 Июнь 2019, 19:53С чего вообще начать работу с ДТО10
Здесь качаем последний драйвер

Распаковываем.
В файле doc\docs.zip отличная документация.
В папке installer\exe берем программу соотв. архитектуре и ставим.
Папку c:\Program Files\ATOL\Drivers10\KKT\bin помещаем в user path
Все процедуры и константы описаны в include\libfptr10.h

Ну и дальше по накатанному:
LoadLibrary('fptr10.dll')
GetProcAddress(...)
и т.д.

Строки как ниже и писалось перед отдачей в драйвер MultiByteToWideChar(1251,...)
После приема из него WideCharToMultiByte(1251,...)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7735
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 26 раз
Поблагодарили: 73 раза

ATOL драйвер 10.4.2

Сообщение Игорь Столяров »

Спасибо - направление работ понятно.
Как я понимаю, здесь самое сложное для StartUp - это конвертнуть навороченный сишный libfptr10.h с описаниями
прототипов в кларионовский аналог libfptr10.inc … Знание C у меня конечно есть, но хромает на обе ноги. :)
Make Clarion Great Again ! 😎
Аватара пользователя
Admin
Администратор
Сообщения: 4000
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 46 раз
Поблагодарили: 26 раз
Контактная информация:

ATOL драйвер 10.4.2

Сообщение Admin »

Игорь Столяров писал(а): 28 Июнь 2019, 8:59самое сложное
Нет.
Вот сейчас полдня бьюсь с libfptr_get_param_bytearray, вот это да...
Нужно для составных атрибутов. Ни хрена не работает.
Или уже за день мозг забил.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4933
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 10 раз
Поблагодарили: 44 раза

ATOL драйвер 10.4.2

Сообщение finsoftrz »

А не поддерживается opos драйвер, как в dto8? Вроде в доке написано, что можно создать activeX (ole) объект и работать через него.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7735
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 26 раз
Поблагодарили: 73 раза

ATOL драйвер 10.4.2

Сообщение Игорь Столяров »

finsoftrz писал(а): 28 Июнь 2019, 19:24что можно создать activeX (ole)
Я вот это место как раз и пробовал в ДТО10 …
Но похоже же что в АТОЛ так интересно называют COM интерфейс, а это совсем другая история. :(
Make Clarion Great Again ! 😎
Ответить