Epikur 0 21 октября, 2005 Опубликовано 21 октября, 2005 · Жалоба День добрый. Подскажите плиз, как терминальной программе (на своём оборудовании, не PC-машине) определить, что модем перешёл из режима комманд в режим данных и наоборот. Насколько я знаю, один из признаков - модем отвечает что-то типа <CR><LF>CONNECT 28800<CR><LF> И сразу же ли после этого ответа модем уже находится в режиме передачи данных, или должны быть ещё какие-то команды? Какие есть ещё признаки (может, из дополнительных сигналов на COM-шнуре)? И такой ещё вопрос: как обычно происходит защита процесса передачи информации от возникновения среди данных комбинации "+++"? А если кто покажет на хорошую статью по этому поводу, буду очень благодарен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GrayCat 0 21 октября, 2005 Опубликовано 21 октября, 2005 · Жалоба Есть в COM-порту линия DCD, на которой появляется активный уровень, когда модемы соединились (обнаружена несущая). Собственно, от момента "CONNECT" до момента "NO CARRIER" или "ATH" можно считать, что передаются данные. Защита от "+++" -- модем после получения этого слова из 3-х букв еще ~1 секунду паузы выдерживает, и только если в течение этого времени ничего другого не получено, выходит в командный режим. Если сразу за "+++" идет еще что-то, игнорирует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Виктория 0 21 октября, 2005 Опубликовано 21 октября, 2005 · Жалоба Epikur, cмотрите соответствующую главу в библиотеке Фроловых и еще кто-то уже давал вот эту ссылку http://book.itep.ru/10/at_109.htm BSP04.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Epikur 0 21 октября, 2005 Опубликовано 21 октября, 2005 · Жалоба GrayCat А если точнее? Мне нужно знать точно момент перехода из состояния команд в данные. Насколько я понимаю, что когда терминал принимает CONNECT, модем уже находится в режиме данных, и терминал уже может передавать данные, без дополнительных комманд, а заканчивается этот режим по комбинации "+++", либо потери несущей - признак линии DSR. Вот спрашиваю, прав ли я, потому как в литературе, которая меня есть, неоднозначность. Vic1 Спасибо, почитаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Виктория 0 21 октября, 2005 Опубликовано 21 октября, 2005 · Жалоба Пожалуйста, еще возьмите. Это 16 том БСП Фроловых. Во 2-й главе (2.5) - более подробнее (чем в 4-ом томе) описание управления модемами (AT-команды и регистры). Последнее наверно даже интереснее, т.к. указываются и стандартные установки в этих регистрах. Например Регистр S7 Определяет время в секундах после набора номера, в течение которого модем должен выполнить соединение (обнаружить несущую частоту от удаленного модема). По умолчанию регистр содержит значение 30. Если в течение этого времени модем установит связь, он выдает сообщение CONNECT согласно команде ATX. Если связь не будет установлена, модем отвечает NO CARRIER. В энергонезависимой памяти значение регистра не сохраняется. Регистр S9 Определяет время, в течение которого модем должен принимать несущую частоту от удаленного модема. Если несущая принималась в течение этого времени, модем передает компьютеру сигнал DCD. Содержимое регистра задает время в десятых долях секунды. По умолчанию для установки DCD модем должен принимать несущую 0,6 секунды, то есть регистр содержит число 6. В энергонезависимой памяти значение регистра не сохраняется. Регистр S10 Определяет промежуток времени, в течение которого может отсутствовать несущая от удаленного модема и при этом не происходит разрыв связи. Содержимое регистра задает время в десятых долях секунды. По умолчанию несущая частота может отсутствовать 0,7 секунды, то есть регистр содержит число 7. В энергонезависимой памяти значение регистра не сохраняется. Заметим, что значение регистра S10 должно быть больше значения регистра S9, иначе связь будет невозможно установить. и т.д. Т.е. книжку могут использовать не только "системные программисты MS DOS и Windows" :) BSP16.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kons 0 21 октября, 2005 Опубликовано 21 октября, 2005 · Жалоба Все просто: От момента подачи команды ATDxxx (или, при ответе, ATA) до появления сигнала DCD модем все еще находится в режиме команд и любой символ, переданный из компьютера, прерывает процесс установления связи. С момента появления DCD модем находится в режиме данных. Снятие DCD означает переход в режим команд. Именно так работают с модемом Винды (знаю не понаслышке - сам писал когда-то hays-совместимый радиомодем...). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Epikur 0 21 октября, 2005 Опубликовано 21 октября, 2005 · Жалоба Ага, всем спасибо. Прочитал архив BSP04.zip, приложенный Vic1 чуть выше, и все недополнимания исчезли. Пойду ваять :). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться