Автор: Make_Pic 31.8.2014, 9:51
Помогите пожалуйста. Как можно из программы, которую я пишу для фирмы в Qt4.8 сделать так, чтобы она (программа)создавала модемное сетевое подключение в системе WIN XP,7, а потом его запускала т.е. делала коннект (имитировало нажатие кнопки "Вызов") и прерывало его когда необходимо (кнопка "Отмена")? Можно посмотреть примеры такого приложения на Qt?
Возможно этоделается не так, а по другому - подскажите пожалуйста.
P.S. Используется виртуальный COM порт на PС. Мне поставили задачу, добавить в мою программу что то наподобие примитивного коннект менеджера 3G модема, подключенного чере USB виртуальный COM порт.
Автор: FireBlack 1.9.2014, 7:54
Цитата(Make_Pic @ 31.8.2014, 9:51)
Помогите пожалуйста. Как можно из программы, которую я пишу для фирмы в Qt4.8 сделать так, чтобы она (программа)создавала модемное сетевое подключение в системе WIN XP,7, а потом его запускала т.е. делала коннект (имитировало нажатие кнопки "Вызов") и прерывало его когда необходимо (кнопка "Отмена")? Можно посмотреть примеры такого приложения на Qt?
Возможно этоделается не так, а по другому - подскажите пожалуйста.
P.S. Используется виртуальный COM порт на PС. Мне поставили задачу, добавить в мою программу что то наподобие примитивного коннект менеджера 3G модема, подключенного чере USB виртуальный COM порт.
Судя по всему Вам надо через
COM порт подключиться к
GPRS модему, установить соединение и дальше использовать обычное сетевое?!
Для работы с
COM портом начиная с
Qt 5.1 был введен класс
QSerialPort. Но т.к. Вы используете
Qt 4.8, то придется использовать другие, похожие библиотеки, например http://sourceforge.net/projects/qextserialport/.
Чтобы установить соединение необходимо использовать
AT-команды, о которых можно почитать в интернете, например http://3ginfo.ru/page53.html или http://www.gprs-gsm.ru/gprs_tuning.php.
В общем случае, для
Huawei модемов используется следующая последовательность команд:
посылаем
ATE1модем отвечает
OKпосылаем
AT+CGDCONT=1,"IP","internet"модем опять отвечает
OKдалее устанавливаем соединение командой
ATD*99#если модем отвечает
CONNECT, значит соединение установлено.
(Конечно набор команд зависит от самого модема и используемого оператора. Я бы рекомендовал сначала, попробовать установить соединение вручную через терминал, а уж потом реализовывать все это в коде)
Ну а после установления соединения можно использовать обычный
QtNetwork.
Автор: Make_Pic 4.9.2014, 4:58
Цитата(FireBlack @ 1.9.2014, 10:54)
Ну а после установления соединения можно использовать обычный QtNetwork.
Как делать соединение на модеме я знаю, как работать с COM портом из Qt то же разобрался (только вопрос остался по Qt5 и встроенному в эту версию QtSerialport - Остался баг с подтрмаживанием обмена по COM порту при перемещении или изменении размеров окна?).
Вопрос мой был в другом, а именно Я ий Ot сделал AT командами соединение с интернетом в самом модеме 3G, но как теперь с COM порта перенаправить поток, подключение в PC WIN 7, так чтобы программы имели доступ в интернт, короче было нормальное подключение к интернету чере 3G модем? Через мастер подключений в самом WIN 7 это я делаю с модемом без проблем.
Автор: FireBlack 4.9.2014, 8:30
Цитата(Make_Pic @ 4.9.2014, 5:58)
Остался баг с подтрмаживанием обмена по COM порту при перемещении или изменении размеров окна?
Это связано с тем, что судя по всему, у Вас работа с
COM портом производится в основном потоке, где обрабатываются события интерфейса. И Вам следует создать специальный http://qt-project.org/doc/qt-5/qthread.html для работы с
COM портом.
Цитата(Make_Pic @ 4.9.2014, 5:58)
...чтобы программы имели доступ в интернт, короче было нормальное подключение к интернету чере 3G модем
Теоретически, после установления соединения должно появится новое сетевое подключение, через которое все программы и будут выходить в интернет.
Если его нет, то прошу прощения, значит мое предположение не верно. И Вам проще всего использовать дополнительное ПО для установления соединения. В
Linux'е, я бы использовал http://en.wikipedia.org/wiki/WvDial. Под винду в интернете нашел:
http://www.codeproject.com/Articles/120638/G-Modem-Internet-Dialer - софтину с интерфейсом, в исходном коде которой можно посмотреть как это делается;
http://dotras.codeplex.com/ - библиотеку, которую можно использовать для установления соединения;
http://radekp.github.io/qtmoko/api/qtcellmodule.html - модуль для работы с телефонией;
и http://msdn.microsoft.com/en-us/library/aa384005.aspx - для программного создания соединения.
Что из этого подойдет не знаю, тут только пробовать надо.