Виртуальные COM-порты в Windows - эмулятор Факса

В Python 3.7 re.Match - это тип объектов, возвращаемых re.match. См. bpo30397 .

В предыдущих версиях re.Match не определено. Если вам нужна ссылка на тип объектов сопоставления, вы можете получить ее с помощью

Match = type(re.match('',''))

. Вы можете использовать dir для типа Match или для объекта сопоставления, чтобы перечислить его атрибуты и методы.

5
задан Rob 3 February 2009 в 20:34
поделиться

3 ответа

Я работал над этой проблемой в течение нескольких лет, разрабатывая продукт факса LAN. Я сомневаюсь, что можно сделать это хорошо.

Разработка виртуального драйвера COM означает разрабатывать драйвер ядра (если Вы не можете купить один с полки): который является выполнимым (я сделал это), но я предположу, что это - намного больше проблемы, чем это стоит (я был бы удивлен, стоит ли это Вашего в то время как).

Другая проблема состоит в том, что существует множество факс-модемов и стандартов факс-модема (и Вы говорите, что надеетесь эмулировать одно достаточно хорошо для одурачивания FaxMan).

Другая (существенная) проблема состоит в том, что более простые протоколы факса (нес коррекцией ошибок) являются (твердым) протоколом реального времени: существуют некоторые (более или менее) буферизующие на факс-модеме, но ПК, подключенный к факс-модему, не может, чтобы предоставить недогрузке при отправке или переполниться при получении..., что означает, что перенаправление этого трафика с помощью telnet (с таймерами TCP и буферами) любой повреждения сессия факса в худшем случае (FaxMan испытает таймаут) или в лучшем случае означает, что тестирование не является представительным для того, какова реальная (неэмулированная) производительность будет.

Что является Вами пробующий к стресс-тесту так или иначе: Ваше приложение или сторонний FaxMan?

Я предполагаю, что самое дешевое решение и самый реалистический тест использовали бы реальные аппаратные средства: реальные COM-порты, реальные факс-модемы, и реальный (или, возможно, моделируемый) телефонные линии.


Редактирование для ответа на вопросы из комментариев в ответе Michael

Предположение, что транспорт данных является небольшой проблемой (например, потому что можно просто соединить два последовательных порта вплотную), пишет программное обеспечение, которое эмулирует факс-модем небольшая проблема?

Это могло бы быть маленьким: если Ваш нагрузочный тест просто, "отправляют данные факса в битоприемник" затем, Ваш эмулированный модем главным образом просто должен ответить "хорошо" на каждое/что-либо, которое похоже на команду AT плюс различные другие ответы на различные определенные для факса команды AT+F_whatever_. Но это - довольно низкое качество, не очень строгое, тест.

Это было бы довольно просто - но не является там некоторым протоколом, вовлеченным в передачу данных ФАКСА? Или протокол является просто вариантом набора AT-команд, и спуфинг "OK" является всем, которое существует к нему? Я честно не знаю, но я предположил, что будет несколько более сложный протокол.

Протоколы телефона имеют имена как "T.4" и "T.30". Протокол ПК к факс-модему обычно является протоколом, названным "факс класса 1" или "факс класса 2". Последний ("класс 2" или "класс 2.0") является более высоким уровнем двух: больше ASCII и меньше двоичных данных, не, таким образом, чувствительных к синхронизации (класс 1 чувствителен к 10-м msec iirc), потому что он инкапсулирует/переносит больше базового согласования T.30, чем класс 1; это состоит из расширенных ПРИ командах (т.е. командах AT+F_something_ и их ответах) плюс дамп закодированных двоичным файлом данных изображения факса.

Некоторые ответы являются больше, чем просто "хорошо" (т.е. они представляют доступные/согласованные параметры сессии факса), но (в классе 2, а не классе 1) они закодированы ASCII, а не двоичный файл, таким образом, не слишком трудный действительно вообще.

Должно быть своего рода квитирование, правильно? Иначе простой, старый Факс, вероятно, потерял бы набор данных, когда это загружало новую страницу.

Да существует некоторое квитирование ("Я могу отправить теперь?") между страницами (т.е. перед каждой страницей). Эмуляция испытания на нагрузку, которая не тестирует синхронизацию, просто ответила бы "да, разрешение (я только собираюсь быть дампом данных в битоприемник так или иначе, даже не смотря на него, поэтому о чем я забочусь)", к запросу квитирования.

Эмуляция должна была бы также наблюдать данные двухуровневого изображения (который это получает от ПК) для <DLE><ETX> и <DLE><DLE>, для ответа хорошо в конце PC-dumps-image-data-to-the-modem.

Я не знаю, какие таймеры могли бы быть встроены в приложение FaxMan (действительно ли Вы, возможно, должны были добавить искусственные задержки со своими эмулированными ответами, предотвратить понимание FaxMan, что ответы неправильно быстры): возможно, не, но возможно.

Там может или может не быть никакое квитирование в странице:

  • С более старыми протоколами машин/факса факса, нет: вместо этого устройства согласовывают 'параметры сессии факса', включая скорость в бодах, перед страницей: они согласовывают синхронную скорость в бодах, которую оба конца могут поддерживать. Это (способность обработать целую ценность страницы данных, синхронно) является частью того, почему это - протокол жесткого реального времени.
  • Более новые факсы / протоколы факса поддерживают 'коррекцию ошибок' в каждой странице: страница представляется меньшая (но все еще synchrnonous) блоки: и каждый блок, подтвержденный, или ЯВНЫЙ и ретранслируемый.
6
ответ дан 14 December 2019 в 13:48
поделиться

Виртуальный модем: http://www.eltima.com/products/virtual-modem-pro/

0
ответ дан 14 December 2019 в 13:48
поделиться

Я думаю, что совет ChrisW является разумным - особенно получение средств моделирования телефонной линии - они не являются слишком дорогими и были очень полезной спиной, когда я сделал работу драйвера модема.

Тем не менее существует пакет драйвера с открытым исходным кодом, который (согласно их требованиям) позволяет Вам настроить пар виртуальных COM-портов: http://com0com.sourceforge.net/

Вы могли подключить приложение FaxMan к одному COM-порту затем ФАКС 'средство моделирования', которое обработало набор AT-команд и независимо от того, что находится в протоколе ФАКСА, который Вы хотите протестировать. Это походит на то, что Вы искали - но...

  1. Я понятия не имею, как хорошо com0com работа драйверов - я даже не загрузил их намного менее испытанный их (я не уверен, что должен даже отправить этот ответ...),
  2. Я понятия не имею, сколько работы было бы включено в письменной форме моделирование ФАКСА; я предполагаю, что это не небольшая задача.
0
ответ дан 14 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: