Одновременные запросы драйвера Twain
Можно ли использовать один драйвер twain для управления одновременным запросом к двум различным многофункциональным принтерам?
Я имею в виду, если у меня есть два МФУ, могу ли я выполнить два запроса на сканирование в параллельном режиме, используя один и тот же драйвер twain?
3 ответа
Это зависит от того, поддерживает ли ваш драйвер.
На странице 125 спецификации TWAIN: Если приложение пытается подключиться к источнику, который поддерживает только одно подключение, когда источник уже открыт, источник должен ответить TWRC_FAILURE и TWCC_MAXCONNECTIONS.
Также из спецификации на стр. 212. За управление этим отвечает Источник, а не Менеджер источников (Менеджер источников заранее не знает, сколько соединений будет поддерживать Источник).
Я проверил это на сканере Fujitsu fi-7260 и получил ошибку TWCC_MAXCONNECTIONS с Twacker:
Это может быть возможно. Причина в том, что TWAIN просто находится между приложением и поданными к нему изображениями. Представьте себе сценарий чего-то в следующих строках:
1) Пользователь нажал на кнопку сканирования. 2) Вы инициируете вызовы сетевого уровня для запуска задания сканирования. 3) Теперь вместо одного принтера вы запускаете задания сканирования на двух принтерах из двух потоков. 4) Допустим, каждый из этих потоков заполняет необработанные данные BMP в единую структуру данных, которая является общей. 5) После завершения обоих потоков переберите эту общую структуру данных, чтобы передать изображения в приложение с помощью вызова XFERIMAGE.
Основная идея заключается в создании абстракции двух принтеров за сценой.
Пожалуйста, дайте мне знать, если мое понимание вашего вопроса было неправильным или вам нужны другие разъяснения.
Если вы реализуете его описанным способом, он обычно работает только с двумя разными МФУ, так как большинство драйверов TWAIN не поддерживают два разных USB-устройства одновременно.