Название: Qt + АСПД Штрих-М Отправлено: Vergil Alighieri от Май 16, 2015, 11:04 Есть программа. Условно "модуль кассы". Можно проводить различные операции как и везде. Ставится она совместно с обычными кассовыми программами и большая часть информации должна браться с операций в тех самых кассовых программ, которые в свою очередь отправляют её на АСПД Штрих-М (подключается по USB).
Вопрос в том как получить эту информацию (номер товарного чека, сумма покупки и дата операции)? Есть драйвер к этому аппарату, написанный, кажется, на дэлфях. Как с ним работать - без понятия :(. Есть программа Portmon (вроде как от мелкомягких), она всё отлично принимает (считывает всю инфу передающуюся по com-портам и сохраняет в логи), но не работает на 64х-битных системах. Может есть возможность повторить её функционал в Qt? В какую сторону смотреть неопытному программисту? ??? Название: Re: Qt + АСПД Штрих-М Отправлено: Bepec от Май 16, 2015, 11:17 портмон - это надстройка над ком портом, использующая winapi.
В Qt для работы с ком портами используется QtSerial, в 5+ версиях он поставляется сразу вместе с Qt. PS драйвер с дельфи можно переписать, но тут уже зависит от вашего желания. PPS начинать с "составить список необходимого" попунктно. 1) принимать данные с устройства. 2) обрабатывать данные. 3) выводить пользователю или в модуль кассы :) Название: Re: Qt + АСПД Штрих-М Отправлено: Vergil Alighieri от Май 16, 2015, 14:43 А возможно подключиться в Qt к занятому порту и просто его мониторить?
Название: Re: Qt + АСПД Штрих-М Отправлено: kuzulis от Май 16, 2015, 14:54 Нет. Для этого есть всякие снифферы/мониторы (HDD SerialPort Monitor и прочие), которые устанавливают свой фильтр-драйвер на устройство и перехватывают весь траффик.
Название: Re: Qt + АСПД Штрих-М Отправлено: chagovets от Май 16, 2015, 19:37 Реализовывал драйвер для АСПД на 4.8.
Могу поделиться. P.S. правда пришлось использовать qextserialport. QSerialPort имел проблемы под виндовым rdp - нужно было использовать удалённый рабочий стол. Название: Re: Qt + АСПД Штрих-М Отправлено: kuzulis от Май 17, 2015, 09:13 Цитировать QSerialPort имел проблемы под виндовым rdp Что за проблемы (и причем тут RDP?)? Какая версия использовалась? Название: Re: Qt + АСПД Штрих-М Отправлено: chagovets от Май 17, 2015, 20:54 я в этой теме пытался озвучить, но , к сожалению, ни кто не ответил ;)
Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ]. (http://www.prog.org.ru/index.php?topic=9537.msg192033#msg192033) Название: Re: Qt + АСПД Штрих-М Отправлено: kuzulis от Май 17, 2015, 21:58 Хм. Видимо я профукал этот момент. Странная вещь однако почему так происходит, т.к. qextserialport использует ту-же фичу что и qserialport (QWintEventNotifier) для отслеживания евентов ввода/вывода.
Название: Re: Qt + АСПД Штрих-М Отправлено: chagovets от Май 18, 2015, 09:08 сейчас уже всех подробностей не припомню, но и у qextserialport вроде бы те же проблемы
просто пришлось выкрутиться отдельным потоком и проверять bytesAvailable() но с QSerialPort точно ни как не вышло (к большому сожалению, использовал его со времён QSerialDevice) Название: Re: Qt + АСПД Штрих-М Отправлено: kuzulis от Май 18, 2015, 10:34 ясно, ну, тогда это QWintEventNotifier проблемы (скорее всего).
Но начиная с Qt 5.5 QSerialPort будет использовать другой нотификатор, который должен решить многие проблемы, которые были ранее (например, остановку событий при ресайзе/перемещении окна, что, вероятно имеет те-же корни что и у RDP). Но это только для Qt5, для Qt4 к сожалению все остается как и раньше. Название: Re: Qt + АСПД Штрих-М Отправлено: chagovets от Май 18, 2015, 11:12 Цитировать начиная с Qt 5.5 QSerialPort будет использовать другой нотификатор ок, спасибо, уже давно пора переходить :)Цитировать Есть драйвер к этому аппарату, написанный, кажется, на дэлфях. Как с ним работать - без понятия кстати, стандартный драйвер - это обычной com-серверк нему запросто можно обращаться посредством QAxObject |