Бесплатная библиотека модемов и последовательных коммуникаций или приложение с поддержкой сценариев с ZMODEM/KERMIT

Моя задача на первый взгляд проста: набрать номер в терминале через модем, войти в систему, возможно, отправить некоторые другие символы, а затем получить файл (ы) через ZMODEM или KERMIT .. или отправить файл через ZMODEM или KERMIT.

Я рвал на себе волосы, пытаясь заставить это работать правильно. В основном я застрял на протоколе ZMODEM. У меня есть рабочая реализация XMODEM и YMODEM, которые достаточно просты. Но ZMODEM, очевидно, немного сложнее.

Я устал от всего этого. Особенно с модемами в целом. В настоящее время я просто посылаю команду ATDT и надеюсь на лучшее.

Терминальная программа, которая легко скриптируется, может также подойти. В настоящее время я смотрю в Tera Term. Но некоторая необходимая логика при подключении может сделать это менее желательным или временным решением.

Мне любопытно, если кто-нибудь знает о бесплатной библиотеке для последовательной связи для Windows, которая поддерживает протоколы ZMODEM или KERMIT.

В идеале, то, что может посмотреть в свойствах модема и получить инициализацию и строки подключения, было бы удивительно. Я пытался использовать TAPI для дозвона и управления дескриптором порта, но он никогда не работал очень надежно.

Я не боюсь интегрировать различные подходы в мой собственный код!

Моя текущая и предпочтительная платформа - C++, но я открыт для всего.

Спасибо за любую помощь, советы, предложения и т. Д.

4 ответа

Решение

sexyz доступен как кроссплатформенная * реализация протокола модема. IIRC вы можете подключиться, затем вызвать sexyz, передав дескриптор сокета и некоторую дополнительную информацию. Он доступен как часть синхронизации, но вы можете использовать его отдельно.

Для получения дополнительной помощи см. Программирование синхронизма на vertrauen или в irc://vert.synchro.net/#synchronet.

sexyz скачать


В качестве дополнения было бы действительно легко реализовать оболочку терминального клиента в node.js, а затем использовать метод child_process.spawn для использования stdio с sexyz.

sexyz был отличным ориентиром и, вероятно, пригодится в будущем.

Однако для временного решения, и быстрого и недорогого, я закончил писать сценарии с Tara Term. ( http://hp.vector.co.jp/authors/VA002416/teraterm.html) Это было на самом деле довольно просто и легко - и, наконец, я могу вернуться к работе с современными технологиями;)

Поскольку вы используете Windows, вы можете просто выложить в командную строку и использовать rasdial для подключения. После подключения вы можете использовать скрипт Kermit или Windows FTP для перемещения ваших файлов. Это клудж, но в таких случаях он работает для нас. Производитель вашего модема должен быть в состоянии сообщить вам правильные AT-команды, которые вы можете добавить для инициализации и соединений, это не одинаково для всех модемов.

lrzsz доступен для Unix. Возможно, вы сможете использовать его в качестве ссылки или перенести его на Windows.

Другие вопросы по тегам