Дилемма с подключением драйвера

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

Дилемма с подключением драйвера

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

Привет всем ! :)

Есть непреодолимое желание подключить к программе драйвер оборудования (например АТОЛ ДТО10).
Технологических проблем нет, драйвер поставляется как DLL, легко линкуется к Clarion приложению.

Но возникает непреодолимая дилемма. :(

1. Если не добавлять к комплекту программы DLL драйвера, то при запуске программы на компьютере
пользователя, возникает ожидаемая ошибка из-за отсутствующей DLL.
(не нужен юзеру вообще этот АТОЛ и его драйвер, у него используется Штрих-М и т.д.)

2. Если добавлять к комплекту программы DLL драйвера, то может (и скорее всего возникнет) разнобой
версий между этой DLL и установленном на компьютере драйвере АТОЛ ДТО10, который имеет кучу
версий и постоянно сам по себе обновляется как отдельное приложение …

И как это разрулить пока не понятно …
Предлагает ли современная наука какое-то решение этого вопроса (кроме OLE - это отдельная тема) ?

Заранее спасибо за любую идею. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Дилемма с подключением драйвера

Сообщение RaFaeL »

Динамическое подключение dll с динамической линковкой функций... Посмотри как подключаются функции из ClaRunExt.dll. Это если "умное" решение
Есть "тупое" - вынести функцию работы с драйвером в некую отдельную dll, сделать копию этой же dll, где вместо функций вызова драйвера "заглушки" и dll драйвера не подлинкована, соответственно разным клиентам поставлять разные версии этой dll
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4549
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Дилемма с подключением драйвера

Сообщение finsoftrz »

Стандартно в кларионе есть вызов процедур из внешней dll. Мне этого хватает. Если нужно передавать параметры и возвращать значения, то подгрузить dll можно через win api, подробно обсуждалось n лет назад, примеры можно поискать в clalist.
Вопрос больше, конечно, а чем не устраивает работа через ole в данном контексте? С утра в воскресенье? :-)
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Дилемма с подключением драйвера

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

RaFaeL писал(а): 21 Октябрь 2018, 9:53Динамическое подключение dll с динамической линковкой функций
Спасибо - посмотрю, но боюсь что это слишком сложное решение для чужой DLL с непредсказуемыми изменениями …
В Clarion есть работа с подгружаемыми DLL, но вызов функций из них - без параметров … не подходит.
RaFaeL писал(а): 21 Октябрь 2018, 9:53 Есть "тупое" - вынести функцию работы с драйвером в некую отдельную dll
А, кстати, интересно. Действительно:

1. DLL-заглушка-пустышка идёт в комплекте с программой и ничего не делает, наличие драйвера не требует.

2. В этом же комплекте идёт рабочая DLL, которая не прилинкована к программе.

3. В меню программы делаем пункт "Подключить АТОЛ". По нему:
- проверяем наличие установленного драйвера АТОЛ,
- перезапускаем программу с удалением "пустышки" и копированием на её место рабочей DLL.

4. В теории - вроде бы всё получается … :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Дилемма с подключением драйвера

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

finsoftrz писал(а): 21 Октябрь 2018, 10:09Вопрос больше, конечно, а чем не устраивает работа через ole в данном контексте? С утра в воскресенье?
В данном случае, дело даже не в похмелье … ;)
1. OLE всё-таки уже очень старая технология и от неё все производители избавляются. Game over ...
2. Есть некоторые проблемы с инициализацией OLE при ограничения прав юзеров в Windows и терминальных сессиях.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Дилемма с подключением драйвера

Сообщение RaFaeL »

Игорь Столяров писал(а): 21 Октябрь 2018, 10:14Спасибо - посмотрю, но боюсь что это слишком сложное решение для чужой DLL с непредсказуемыми изменениями …
В Clarion есть работа с подгружаемыми DLL, но вызов функций из них - без параметров … не подходит.
Можно и с параметрами, см. пример выше
Если сложно динамически линковать чужую dll, можно написать свою обертку (хоть даже с функциями без параметров) и линковать уже её
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4549
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Дилемма с подключением драйвера

Сообщение finsoftrz »

Игорь Столяров писал(а): 21 Октябрь 2018, 10:18
finsoftrz писал(а): 21 Октябрь 2018, 10:09Вопрос больше, конечно, а чем не устраивает работа через ole в данном контексте? С утра в воскресенье?
В данном случае, дело даже не в похмелье … ;)
1. OLE всё-таки уже очень старая технология и от неё все производители избавляются. Game over ...
2. Есть некоторые проблемы с инициализацией OLE при ограничения прав юзеров в Windows и терминальных сессиях.
Ну, тогда все понятно... :-)
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Дилемма с подключением драйвера

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

finsoftrz писал(а): 21 Октябрь 2018, 17:42Ну, тогда все понятно...
Вам-то с Пиритами & COM портами проще … а вот с АТОЛ & OLE есть одна интересность …
Драйвер АТОЛ ДТО8 поддерживается до конца 2018 г., а современный АТОЛ ДТО10 не имеет OLE интерфейса.
И что с этим делать, лично мне - пока не понятно. ;)

Кто-нибудь пробовал юзать драйвер АТОЛ ДТО10 из Clarion ?
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Дилемма с подключением драйвера

Сообщение Admin »

Игорь Столяров писал(а): 23 Октябрь 2018, 20:19Драйвер АТОЛ ДТО8 поддерживается до конца 2018 г.
Не совсем так. Судя по информации на этой странице, драйвер будет поддерживаться до 28.12.2019. В конце же 2018 прекращается доработка/обновление драйвера.
Игорь Столяров писал(а): 23 Октябрь 2018, 20:19а современный АТОЛ ДТО10 не имеет OLE интерфейса.
На форуме обещали какой то OLE враппер для пользователей старых версий. Но это вилами на воде.
Игорь Столяров писал(а): 23 Октябрь 2018, 20:19Кто-нибудь пробовал юзать драйвер АТОЛ ДТО10 из Clarion ?
Я для себя решил пока не спешить и заняться следующим летом.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Дилемма с подключением драйвера

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

Спасибо за информацию ! В справке-то к ДТО10 они написали, что у них реализован интерфейс OLE …
Но у них смешались люди и кони, т.к. на самом деле реализован COM интерфейс. По крайне мере - сейчас.

С другой стороны, как я понял, 1С-никам всё равно, т.к. у них реализован общий механизм интеграции для OLE / COM.

А вот нам надо идти к Деду Пахому. У него есть инструмент дивный, нам не ведомый.
Который делает обёртку к DLL с COM интерфейсом для подключения из Clarion … Других путей я пока не вижу. :(
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4549
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Дилемма с подключением драйвера

Сообщение finsoftrz »

Ну, еще через vbscript решение напрашивается... Как правило, для него дают образцы кода. Это если быстро надо вопрос закрыть. Но, вообще говоря, я бы тоже пока не стал дергаться. Через ole много софта работает, могут атоловцев прогнуть.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Дилемма с подключением драйвера

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

finsoftrz писал(а): 24 Октябрь 2018, 14:40могут атоловцев прогнуть
Мне кажется АТОЛ - пофиг, чего им париться-то особо в стране победившей 1С ? ;)
Тут ещё нужно учитывать, что Microsoft тоже считает OLE рудиментом и грозит её прикрыть. Развивать - уж точно не будет.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4549
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Дилемма с подключением драйвера

Сообщение finsoftrz »

На самом деле, у каждого производителя существует протокол обмена с оборудованием - строки, формируемые по определенным правилам, которые отправляются в ккм и получаются в ответ. Далее, есть транспортная система. Насколько я знаю, это либо обмен по com порту (физическому или виртуальному), либо сокеты. Дальше уже идет надстройка в виде библиотек для упрощения работы. Например, упоминаемый драйвер АТОЛ.
То есть технически мы можем работать с ккм от атола или штриха напрямую, без их драйверов. Как с пиритами или сп-ками. Другой вопрос, нужно ли это...
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Дилемма с подключением драйвера

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

От SV интеграцию с COM тоже ждать не приходится, там более важные дела сейчас идут по перекраске шаблонов.
Короче, куда ни глянь - везде попа. И чем дальше - тем она больше. :(
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4549
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Дилемма с подключением драйвера

Сообщение finsoftrz »

Игорь Столяров писал(а): 24 Октябрь 2018, 15:04
finsoftrz писал(а): 24 Октябрь 2018, 14:40могут атоловцев прогнуть
Мне кажется АТОЛ - пофиг, чего им париться-то особо в стране победившей 1С ? ;)
Тут ещё нужно учитывать, что Microsoft тоже считает OLE рудиментом и грозит её прикрыть. Развивать - уж точно не будет.
На самом деле, кроме 1с есть куча разного другого софта. К примеру, в сетевом ритейле 1с, скажем так, не очень популярна. А в специализированных pos системах, как правило, несколько другой софт. К примеру, распространенная связка бэка на 1с и фронтола в отдельных магазинах и небольших сетях.
C6/C11, ШВС, tps/btrieve.
Ответить