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

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

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

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

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

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

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

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

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

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

Ответы [ 4 ]

2 голосов
/ 06 декабря 2008

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

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

sexyz download


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

1 голос
/ 08 декабря 2008

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

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

0 голосов
/ 06 декабря 2008

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

0 голосов
/ 06 декабря 2008

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

...