реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Выход в интернет, wavecom
MikelSV
сообщение Mar 17 2008, 14:02
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 17-03-08
Пользователь №: 35 966



не могу, а скорее не знаю, но ужасно, как хочется, мне... (эх, стихи)

Как подключиться через tcp соединение? ip адрес есть модем получил.
Нет ли у кого примерчиков?

эх, мне бы только понять (с)
Go to the top of the page
 
+Quote Post
imatveev13
сообщение Mar 21 2008, 12:15
Сообщение #2





Группа: Новичок
Сообщений: 7
Регистрация: 27-06-07
Пользователь №: 28 749



Цитата(MikelSV @ Mar 17 2008, 17:02) *
не могу, а скорее не знаю, но ужасно, как хочется, мне... (эх, стихи)

Как подключиться через tcp соединение? ip адрес есть модем получил.
Нет ли у кого примерчиков?

эх, мне бы только понять (с)


какой модуль?

есть 3 способа подключиться к и-нету через q2686:

1.с компа создать подключение через COM порт инициализацию модема AT+CGDCONT=1,"IP","internet.mts.ru"
телефон по кот. звонить *99***1#

2. через WIPplugin. Заливаешь этот самый плагин в модем, и появляются новые АТ команды для соединения с GPRS открытия соктов, чтения/записи в сокет. Подробности в документации на WIP(WIP_Open_AT_IP_Connectivity_Development_Guide_V3_00.pdf )

3. Из нутря самописной прошивки, это длинная история. Если уточнишь что надо могу привести куски кода.
Go to the top of the page
 
+Quote Post
MikelSV
сообщение Mar 21 2008, 15:00
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 17-03-08
Пользователь №: 35 966



Разбираюсь с TCPшными функциями внутри модема.

Мнеб примеры, как подключиться к указанному ip, прочитать да записать. Тоесть примеры передачи данных.

В примерах с диска от модема есть примеры соединения с FTP но они что-то не работают.

Если с компьютерными соккетами я могу работать без проблем, то эти пока ставят меня в тупик.
Go to the top of the page
 
+Quote Post
imatveev13
сообщение Mar 24 2008, 11:30
Сообщение #4





Группа: Новичок
Сообщений: 7
Регистрация: 27-06-07
Пользователь №: 28 749



Цитата(MikelSV @ Mar 21 2008, 18:00) *
Разбираюсь с TCPшными функциями внутри модема.

Мнеб примеры, как подключиться к указанному ip, прочитать да записать. Тоесть примеры передачи данных.

В примерах с диска от модема есть примеры соединения с FTP но они что-то не работают.

Если с компьютерными соккетами я могу работать без проблем, то эти пока ставят меня в тупик.


Дык тебе пример для WIP или для EDlib?
Go to the top of the page
 
+Quote Post
MikelSV
сообщение Mar 25 2008, 06:22
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 17-03-08
Пользователь №: 35 966



хмм. WIP, если правильно понимаю. Мне нужно управлять модемом изнутри с помощью функций.
Go to the top of the page
 
+Quote Post
imatveev13
сообщение Mar 25 2008, 15:47
Сообщение #6





Группа: Новичок
Сообщений: 7
Регистрация: 27-06-07
Пользователь №: 28 749



Цитата(MikelSV @ Mar 25 2008, 09:22) *
хмм. WIP, если правильно понимаю. Мне нужно управлять модемом изнутри с помощью функций.


Надо сделать следующее:
1. adl_atCmdCreate("at+cgatt=1", FALSE, adl_atRspHandler_t)f_gprsAttachResponseHndlr,"*",NULL);//GPRS attach AT command
2. wip_bearerOpen(&GPRSwipBearerHndl, "GPRS", f_gprsWipBearerHndlr, NULL);
3. wip_bearerSetOpts(GPRSwipBearerHndl,
WIP_BOPT_GPRS_APN,Settings.gprsAPN,
WIP_BOPT_LOGIN,Settings.gprsUser,
WIP_BOPT_PASSWORD,Settings.gprsPasswd,
WIP_BOPT_END);
4. wip_bearerStart(GPRSwipBearerHndl);
5. wip_TCPClientCreate(servAddr, servPort,f_gprsSocketHndlr,SocketID);

в функцию обработчик событий сокета
void f_gprsSocketHndlr(wip_event_t *ev, u32 SocketID)
тебе будет приходить, кроме прочих, событие
WIP_CEV_READ
тогда в
ev->content.read.readable; содержится длина пришедших данных кот. можно прочитать
wip_read()

когда приходит событие
WIP_CEV_WRITE
ev->content.write.writable; содержит сколько байт можно послать
так слать данные
wip_write(socketHndl, data, DataLen);


приблизительно таким вот образом
Go to the top of the page
 
+Quote Post
MikelSV
сообщение Mar 27 2008, 09:04
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 17-03-08
Пользователь №: 35 966



По незнанию ляпнул глупость. оказывается у меня ed.
Покопался, разобрался.

Вроде все понял, вот только:
ed_DialupConnectionStart возвращает -10, не введен pin. и без него должно работать.

ed_SocketTCPStart возвращает -11, сеть не активирована, правильно ли активировать через ed_DialupConnectionStart?

в f_gprsAttachResponseHndlr возвращается - 148 Неустановленная ошибка GPRS

Если послать AT+CGDATA=1 через терминал, модем переходит в режим передачи данных, тоесть вроде как интернет есть.


Ага, в gprsAttachResponseHndlr пришло ОК.
ed_DialupConnectionStart возвращает: -14 - ED_ERR_NETWORK_KO - WISMO module is not attached to the network. Network was lost before the requested end of connection.
Что он хочет от сети?
Go to the top of the page
 
+Quote Post
imatveev13
сообщение Apr 1 2008, 14:15
Сообщение #8





Группа: Новичок
Сообщений: 7
Регистрация: 27-06-07
Пользователь №: 28 749



Цитата(MikelSV @ Mar 27 2008, 12:04) *
По незнанию ляпнул глупость. оказывается у меня ed.
Покопался, разобрался.

Вроде все понял, вот только:
ed_DialupConnectionStart возвращает -10, не введен pin. и без него должно работать.

ed_SocketTCPStart возвращает -11, сеть не активирована, правильно ли активировать через ed_DialupConnectionStart?

в f_gprsAttachResponseHndlr возвращается - 148 Неустановленная ошибка GPRS

Если послать AT+CGDATA=1 через терминал, модем переходит в режим передачи данных, тоесть вроде как интернет есть.
Ага, в gprsAttachResponseHndlr пришло ОК.
ed_DialupConnectionStart возвращает: -14 - ED_ERR_NETWORK_KO - WISMO module is not attached to the network. Network was lost before the requested end of connection.
Что он хочет от сети?


Переходи лучше на WIP, edLib'у приходит конец вместе с q24 q25.

У меня с edLib'ом сделано приблизительно так:

1.
adl_simSubscribe(f_SIM_hndlr, Settings.pin_code);

void f_SIM_hndlr(u8 event){

switch(event){
[...]
//после прихода этого события можно работать
case ADL_SIM_EVENT_FULL_INIT://initialization is done
f_dbgmsg("-f_SIM_hndlr- ADL_SIM_EVENT_FULL_INIT SIM card is ready");
f_smsInit();
SIMflg=TRUE;
break;

[...]
}

//ясное дело надо еще дождаться чтоб GSM поднялся

2.
bool f_gprsAttach(){
if(GPRSattached) return(TRUE);
if(!SIMflg) return(TRUE);
if(!GSMflg) return(TRUE);
[...]

adl_atCmdCreate("at+cgatt=1", FALSE, (adl_atRspHandler_t)f_gprsAttachResponseHndlr,"*",NULL);//GPRS attach AT command
[...]
}

void f_gprsAttachResponseHndlr(adl_atResponse_t* resp){

[...]
strncpy(strbuf, resp->StrData, STRBUFLEN);
[...]

if( strncmp(strbuf, "OK", strlen("OK"))==0) {
f_dbgmsg("-f_gprsAttachResponseHndlr- GPRS attached");
cgattOK=TRUE;
}

[...]
if(strncmp(strbuf,"+CME ERROR: 148",strlen("+CME ERROR: 148"))==0){
f_errmsgf("-%s- +CME ERROR: 148 Unspecified GPRS error, f_gprsEdStop()",__FUNCTION__);
f_gprsEdStop();
}

//Wavecom FAQ
//Error +CME ERROR: 148 can occur in the following cases:
//1. When the GPRS services is not enabled on the SIM card.
//2. When the module is in a roaming and the currently selected PLMN does not support GPRS services for the HPLMN of the module.
//3. When the received signal strength by the module is very weak. In this case, the module is not able to access GPRS network either due to too much buffering of packets (which is leading to timeout) or due to too much errors.
[...]
}

3.
bool f_gprsEdInit(){
[...]
vInitRes = ed_Init();
if(vInitRes == ED_ENTRY_LEVEL_TCP_IP || vInitRes == ED_HIGH_LEVEL_INTERNET) {
vRes = TRUE;
f_dbgmsg("-f_gprsEdInit- GPRS init on success");
}
else{
f_errmsg("-f_gprsEdInit- GPRS not init");
f_errmsgf("-f_gprsEdInit- %s",f_gprsEdErr2str(vInitRes));

}
[...]
}

4.
ed_gprsSetupParams_t vtmpParams;
[...]
vtmpParams.Cid = 1;
vtmpParams.Mode = 1;

strncpy(vtmpParams.ApnServ, apn, GPRS_STRMAXSIZE);//GPRS_STRMAXSIZE edLib
strncpy(vtmpParams.ApnUn, uin, GPRS_AUTHSTRMAXSIZE);
strncpy(vtmpParams.ApnPw, pwd, GPRS_AUTHSTRMAXSIZE);

tmpRes = ed_GprsSetConfig(&vtmpParams);

if(tmpRes == 0){
vRes = TRUE;
f_dbgmsg("-f_gprsEdConfig- Set GPRS settings on success");
}
else{
f_errmsg("-f_gprsEdConfig- Set GPRS settings error");
f_errmsgf("-f_gprsEdConfig- %s",f_gprsEdErr2str(tmpRes));
}


5.
bool f_gprsEdStart(){
[...]
tmpRes = ed_DialupConnectionStart(f_gprsEdStartResponseHndlr);
if(tmpRes == 0) {
f_dbgmsg("-f_GPRS_Start- Connection start on success");
vRes = TRUE;
}
else{
f_errmsg("-f_GPRS_Start- Connection start unsuccess");
f_errmsgf("-f_GPRS_Start- %s",f_gprsEdErr2str(tmpRes));
vRes = FALSE;
}
[...]
}

void f_gprsEdStartResponseHndlr(s32 RspCode, TeDHandle handle){

f_dbgmsgf("-%s- handle: %d", __FUNCTION__, handle);

if(RspCode == ED_OK_GPRS_SESSION_SET){
f_dbgmsgf("-%s- GPRS session is activated", __FUNCTION__);
}
else{
if(RspCode<0){
f_errmsgf("-%s- %s",__FUNCTION__, f_gprsEdErr2str(RspCode));
GPRSattached=FALSE;
cgattOK=FALSE;
}
}
}

6.
void f_gprsStateTmrHndlr(u8 tmrID){//таймер следит за состоянием GPRS
ed_dialupGenInfos_t tmpInfo;
[...]

if(!GPRSattached){
}

//проверяем дружбу edLib с GPRS
ed_DialupGetGeneralInformations(&tmpInfo);
gprsState = tmpInfo.State;

if(gprsState ==ED_ERR_NOT_INIT){
f_gprsEdInit();
}

if(gprsState ==ED_IDLE){
if(cgattOK) f_gprsEdStart();
}

if(gprsState==ED_CONNECTED){
if(!GPRSattached){
//такое бывает если GPRS работал и оборвался
f_gprsAttach();
return;
}
}
[...]
}

ну с сокетом все б.м. понятно...
Go to the top of the page
 
+Quote Post
Thread
сообщение Apr 14 2008, 06:00
Сообщение #9





Группа: Новичок
Сообщений: 1
Регистрация: 14-04-08
Пользователь №: 36 742



Добрый день. У меня похожая проблема, только wip_bearerStart() всегда возвращает WIP_BERR_BAD_HDL!! и я не знаю как это побороть. Скажите была ли у кого нибудь такая проблема? Собираю приложение под OAT3.12 с WIPLib 2.00.3.2 соответственно. Скажите, исправил ли это 3-я версия WIP или проблема в чем-то другом.
Go to the top of the page
 
+Quote Post
Андрей К. Ф.
сообщение Sep 18 2008, 07:33
Сообщение #10





Группа: Новичок
Сообщений: 6
Регистрация: 23-05-08
Пользователь №: 37 753



Здравствуйте, господа. Направьте меня на путь истинный! Пробую подключиться к интернет через модем FASTRACK WISMO (TCP/IP). В Гипертерминале пишу:
Код
AT+CGCLASS="CG"
OK
AT+CGDCONT=1,"IP","internet.mts.by"
OK
atd*99***1#

В ответ получаю следующее:
Код
CONNECT 115200
~ }#À!}!}!} }6}!}$}%Ü}"}&} } } } }'}"}(}"}#}$À#&´~~ }#À!}!}!} }6}!}$}%Ü}"}&} } }
} }'}"}(}"}#}$À#&´~~ }#À!}!}!} }6}!}$}%Ü}"}&} } } } }'}"}(}"}#}$À#&´~~ }#À!}!}!
} }6}!}$}%Ü}"}&} } } } }'}"}(}"}#}$À#&´~~ }#À!}!}!} }6}!}$}%Ü}"}&} } } } }'}"}(}
"}#}$À#&´~~ }#À!}!}!} }6}!}$}%Ü}"}&} } } } }'}"}(}"}#}$À#&´~~ }#À!}!}!} }6}!}$}%
Ü}"}&} } } } }'}"}(}"}#}$À#&´~~ }#À!}!}!} }6}!}$}%Ü}"}&} } } } }'}"}(}"}#}$À#&´~
~ }#À!}!}!} }6}!}$}%Ü}"}&} } } } }'}"}(}"}#}$À#&´~~ }#À!}!}!} }6}!}$}%Ü}"}&} } }
} }'}"}(}"}#}$À#&´~
NO CARRIER


В чем моя ошибка? И какими командами вводится имя пользователя и пароль (в случае белоруского МТС "mts", "mts")? Почему команды работы с IP стеком (AT#.....) всегда возвращают ERROR?
Go to the top of the page
 
+Quote Post
Baser
сообщение Sep 18 2008, 09:59
Сообщение #11


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Андрей К. Ф. @ Sep 18 2008, 10:33) *
Пробую подключиться к интернет через модем FASTRACK WISMO (TCP/IP). В Гипертерминале пишу...

А что вы понимаете под словами "Пробую подключиться к интернет"? Что вы собирались увидеть в гипертерминале?

То, что вы делали, это запуск PPP сессии. Вам в ответ тоже нужно "также посвистеть" в бинарном виде по протоколу PPP smile.gif
Go to the top of the page
 
+Quote Post
Андрей К. Ф.
сообщение Sep 18 2008, 10:42
Сообщение #12





Группа: Новичок
Сообщений: 6
Регистрация: 23-05-08
Пользователь №: 37 753



Цитата(Baser @ Sep 18 2008, 12:59) *
А что вы понимаете под словами "Пробую подключиться к интернет"? Что вы собирались увидеть в гипертерминале?

То, что вы делали, это запуск PPP сессии. Вам в ответ тоже нужно в бинарном виде по протоколу PPP smile.gif


Признаю, что вопрос был поставлен неправильно. Попробую по другому...
Задача состоит в том, чтобы отправлять почту через GSM модем.
Естественно для этого надо "соединение с провайдером с использованием GPRS".
В руководстве по АТ-командам нахожу пример "Активация IP PDP контекста".
Это и есть действия, описанные выше.
Когда надо "также посвистеть" в ответ, никакие АТ-команды не проходят, модем выплевывает тарабарщину и, спустя некоторое время, отключается...

Если я правильно понял, АТ-командами нельзя отправить почту?
Зачем тогда нужны "AT-команды для работы с IP стеком" (AT#......)? Которые, кстати, всегда возвращают ERROR?

Т.е. получается "пропасть" между установкой РРР соединения и работой TCP/IP стека.
Подскажите, пожалуйтса, чем ее заполнить.
Go to the top of the page
 
+Quote Post
Baser
сообщение Sep 18 2008, 14:56
Сообщение #13


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Я с модемами Wavecom не работал, поэтому конкретным рецептом не помогу, только общими разъяснениями laughing.gif
Цитата(Андрей К. Ф. @ Sep 18 2008, 13:42) *
В руководстве по АТ-командам нахожу пример "Активация IP PDP контекста".
Это и есть действия, описанные выше.
Эти действия предназначены для случая, когда вы применяете внешнюю программу с TCP/IP стеком, которая поддерживает, в частности, PPP (напр. РС)

Цитата
Когда надо "также посвистеть" в ответ, никакие АТ-команды не проходят, модем выплевывает тарабарщину и, спустя некоторое время, отключается...
Тут уже команды не помогут, тут нужно бинарный протокол поддерживать.

Цитата
Если я правильно понял, АТ-командами нельзя отправить почту?
Зачем тогда нужны "AT-команды для работы с IP стеком" (AT#......)?
Думаю, все можно, только для использования внутреннего стека нужно применять свой набор команд в определенной последовательности. Какой - не скажу, см. выше...
Go to the top of the page
 
+Quote Post
Harbinger
сообщение Sep 25 2008, 03:58
Сообщение #14


старший лаборант
******

Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097



Цитата(Baser @ Sep 18 2008, 17:56) *
Думаю, все можно, только для использования внутреннего стека нужно применять свой набор команд в определенной последовательности. Какой - не скажу, см. выше...

Самое первое - включить стек (AT+WOPEN=1) и перезагрузить модуль (AT+CFUN=1), чтобы на AT# ERRORами не ругался. А дальше - как книга пишет wink.gif


--------------------
Китайская комплектация - европейское качество! ;)
Go to the top of the page
 
+Quote Post
Воффка
сообщение Sep 26 2008, 10:09
Сообщение #15





Группа: Участник
Сообщений: 3
Регистрация: 26-09-08
Пользователь №: 40 495



Цитата(imatveev13 @ Mar 21 2008, 16:15) *
3. Из нутря самописной прошивки, это длинная история. Если уточнишь что надо могу привести куски кода.
Добрый день! Я только начинаю работать с GSM модемами, поэтому был бы рад, если бы мне помогли немного разобраться. Я использую Fastrack Supreme 10, внутри у него как я понял Q2686, версии прошивки R71a01, OS 6.02, IDE 1.07, использую Eclipse с GCC компилятором. В общем то, что получили в Компеле вместе с модемом. Попытался повторить по шагам, то что описано в TU_Tutorial_for_Open_AT.pdf, который я приложил, только пример взял не Hello World, а tcp_client из набора WIP плагинов. Забил в cfg_gprs.c и в entry_point.c свои данные, выполнил Build (RTE) и попробовал запустить (Run), а также посмотреть через Target Monitoring Tool и Terminal Emulator, т.е. все как описано в приложенном файле. Вроде все получилось, соединение установилось, данные отослал и даже принял. Потом с помощью Build (Target) создал прошивку и залил ее через гипертерминал, но приложение не запустилось (at+cfun=1 и at+wopen=1 я выполнял). Помогите пожалуйста разобраться в чем может быть проблема. Заранее благодарен.
Прикрепленные файлы
Прикрепленный файл  TU_Tutorial_for_Open_AT.pdf ( 1.08 мегабайт ) Кол-во скачиваний: 559
 
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 21:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01629 секунд с 7
ELECTRONIX ©2004-2016