Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.09;
Скачать: CL | DM;

Вниз

Работа через модем в режиме ЗАПРОС-ОТВЕТ   Найти похожие ветки 

 
novikova   (2006-01-23 08:35) [0]

Уважаемые Мастера.
Сейчас осваиваю премудрости работы через модем. задача следующая:
Дано: 2 компьютера.Каждый через модем подключен к своей телефонной линии.
Требуется: организовать дуплексный обмен между ними по принципу Запрос - ответ. То есть, ведущий компьютер выдает запрос в виде кадра (их может быть несколько разновидностей) через модем, а в ответ ведомый должен выдать тоже кадр - другой (в зависимости от типа запроса).

Все разновидности протоколов передачи данных для модемов не дают такой возможности.

Можно ли что-нибудь сделать, или это не лечится?


 
Digitman ©   (2006-01-23 10:39) [1]


> это не лечится?


Не лечится.
Потому что это не болезнь.


> Можно ли что-нибудь сделать


Разработать и реализовать прикладной протокол информационного обмена между программами, работающими по разные стороны соединения.


 
Anatoly Podgoretsky ©   (2006-01-23 11:00) [2]

novikova   (23.01.06 08:35)  
Это вообще то симплекс.
Разрабатывай свой протокол обмена, на указаном принципе.


 
novikova   (2006-01-23 11:40) [3]

Да протокол то есть, и без модема (через RS-232) он работает (обмен данными с аппаратурой), а вот как перенести его на модем - не знаю. Пугает пример протокола X-modem, где данные передаются только в одном направлении и эти символы ASC/NAC...


 
novikova   (2006-01-23 11:54) [4]

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


 
Digitman ©   (2006-01-23 11:57) [5]


> протокол то есть, и без модема ..он работает  (обмен данными с аппаратурой),


Это не тот протокол.
Речь в дан.случае идет о протоколе инф.обмена между ПРОГРАММАМИ, одна из которых посредством модемного соединения управляет работой другой программы (той самой которая работает на компьютере, к которому подключена "аппаратура")


 
novikova   (2006-01-23 12:00) [6]

Как же мне сделать этот фокус, чтобы программы "разговаривали" между собой через модемы. Подскажите, а то я совсем запуталась...


 
Digitman ©   (2006-01-23 12:06) [7]


> можно ли передавать свои данные (любые) и принимать их с
> удаленного модема просто так, без ухищрений


Можно. Но смотря что считать "ухищрениями" ..


> модем требует обязательного оформления начало-конец, подтверждение


Это - транспортный уровень, он не имеет ничего общего с прикладным уровнем, по OSI-иерархии находящемся НАД транспортным.

На транспортном уровне драйверы обоих модемов "разговаривают" меж собой, нисколь не заботясь о содержимом данных, которые они "гоняют".

Самая первая задача транспортного уровня - с определенной долей гарантии доставить данные (неважно какого содержимого) партнеру по соединению и , возможно, получить подтверждение их доставки.

Первая же задача прикладного уровня - сформировать+отправить/принять+распознать некий набор неких конкретных данных при посредничестве низлежащего транспортного уровня.


 
Digitman ©   (2006-01-23 12:11) [8]


> novikova   (23.01.06 12:00) [6]


см. RAS API  ... готовое решение всех низлежащих уровней, вплоть до транспортного включительно

При использовании RAS API проблемы организации "разговора" меж собой модемов не существует - они сами договорятся меж собой, как передавать принимать данные.

Твоим приложениям, использующим RAS API , остается лишь передавать для отправки / получать принятые данные, нимало не заботясь о том как это делают модемы "изнутри"


 
novikova   (2006-01-23 12:40) [9]

Для компьютеров, может это и подойдет. Проблема в том, что на принимающей стороне будет не комп, а цифровое устройство, подсоединенное к модему, а там я не смогу реализовать RAS API (пока не знаю, что это такое)


 
Reindeer Moss Eater ©   (2006-01-23 12:50) [10]

Возьми пакет AsyncPro на SourceForge.net
Удовлетворит все твои потребности на 300 %


 
novikova   (2006-01-23 13:56) [11]


> Первая же задача прикладного уровня - сформировать+отправить/принять+распознать
> некий набор неких конкретных данных при посредничестве низлежащего
> транспортного уровня.

каким же образом, я не понимаю. можно пояснить это "на пальцах". как передать свой кадр через модем?


 
Reindeer Moss Eater ©   (2006-01-23 14:10) [12]

Вот так передавать

FileWrite(дескриптор порта,адрес буфера,длина буфера)


 
novikova   (2006-01-23 15:46) [13]

То есть, я могу просто в модем передать свои данные через WriteFile и он их перекачает удаленному модему.Так?


 
Reindeer Moss Eater ©   (2006-01-23 15:51) [14]

Приблизительно так.


 
wal ©   (2006-01-23 16:01) [15]


> [13] novikova   (23.01.06 15:46)
После установки соединения, когда оба модема из командного режима перешли в режим данных. За исключением исключений, таких как XON-XOFF (если используется), +++, больше так на вскидку не вспоминается.


 
Digitman ©   (2006-01-23 16:04) [16]


> То есть, я могу просто в модем передать свои данные через
> WriteFile и он их перекачает удаленному модему.Так?


Под тем что происходит в недрах ф-ции WriteFile() в дан.случае как раз и скрывается все то что лежит ниже прикладного протокола в иерархии протоколов.

Приложению, вызвавшему WriteFile(), начхать на то как используемый им модем передаст указанные данные другому модему на другом "конце Вселенной".


 
Anatoly Podgoretsky ©   (2006-01-23 16:25) [17]

Также наплевать, будет ли что ни будь подключено к порту.


 
novikova   (2006-01-23 16:26) [18]

А в каком виде будет принят мой кадр на удаленном модеме, то есть что он передаст по RS-232 на подключенное к нему устройство. Функция ReadFile поможет только компу, а как быть с другими устройствами?


 
ECM ©   (2006-01-23 16:33) [19]


> wal ©   (23.01.06 16:01) [15]


> За исключением исключений, таких как ...
>  +++,

Точнее +++ три плюса тоже можно передавать в режиме данных (для выхода из режима нужны еще и паузы до и после) :
+++
This is the default escape sequence. Transfers the modem from data mode to command mode. Must be preceded by at least 1 second of no characters and followed by one second of no characters. O0 (ATO0 or ATO) returns the modem to data mode.


 
novikova   (2006-01-23 16:35) [20]

Я имела в виду, мои данные будут иметь обрамление, согласно выбранному протоколу(начало, конец, CRC) или еще что-нибудь. Как мне их расшифровывать?


 
Digitman ©   (2006-01-23 16:36) [21]


> Функция ReadFile поможет только компу, а как быть с другими
> устройствами?


Фуннкция Read/WriteFile поможет не какому-то там "компу", а конкретно твоему приложению, т.е. тебе как программисту.

Они, эти самые ф-ции Read/WriteFile, абстрагированы до максимально возможного уровня - тебе ровным счетом наплевать, КАКОЕ КОНКРЕТНО устройство осуществляет инф.обмен с другим аналогичным устройством на другом конце света, будь то модем или каой-нть "лазерный глюкоид"...


> в каком виде будет принят мой кадр


в том же виде в каком он был передан


 
novikova   (2006-01-24 08:27) [22]

А как "сказать" модему, что ESCAPE-последовательность в моем кадре являются данными, а не сигналом к переходу в командный режим?


 
novikova   (2006-01-24 08:30) [23]

Уже нашла...


 
Anatoly Podgoretsky ©   (2006-01-24 09:10) [24]

novikova   (24.01.06 08:27) [22]
См. ECM ©   (23.01.06 16:33) [19]



Страницы: 1 вся ветка

Текущий архив: 2006.04.09;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.031 c
15-1140796401
Volf_555
2006-02-24 18:53
2006.04.09
Проблема с настройкой GPRS для SonyEricsson k600i. КИЕВСТАР


15-1142630130
ProGmaer
2006-03-18 00:15
2006.04.09
ADSL и игры


2-1143463840
sofi
2006-03-27 16:50
2006.04.09
Разрешение экрана


6-1135589718
syned
2005-12-26 12:35
2006.04.09
WinSock приходят неверные данные


2-1143016735
tyo
2006-03-22 11:38
2006.04.09
Остановить асинхронную ADOCommand