Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выход в интернет, wavecom
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
MikelSV
не могу, а скорее не знаю, но ужасно, как хочется, мне... (эх, стихи)

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

эх, мне бы только понять (с)
imatveev13
Цитата(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. Из нутря самописной прошивки, это длинная история. Если уточнишь что надо могу привести куски кода.
MikelSV
Разбираюсь с TCPшными функциями внутри модема.

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

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

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

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

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

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


Дык тебе пример для WIP или для EDlib?
MikelSV
хмм. WIP, если правильно понимаю. Мне нужно управлять модемом изнутри с помощью функций.
imatveev13
Цитата(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);


приблизительно таким вот образом
MikelSV
По незнанию ляпнул глупость. оказывается у меня 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.
Что он хочет от сети?
imatveev13
Цитата(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;
}
}
[...]
}

ну с сокетом все б.м. понятно...
Thread
Добрый день. У меня похожая проблема, только wip_bearerStart() всегда возвращает WIP_BERR_BAD_HDL!! и я не знаю как это побороть. Скажите была ли у кого нибудь такая проблема? Собираю приложение под OAT3.12 с WIPLib 2.00.3.2 соответственно. Скажите, исправил ли это 3-я версия WIP или проблема в чем-то другом.
Андрей К. Ф.
Здравствуйте, господа. Направьте меня на путь истинный! Пробую подключиться к интернет через модем 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?
Baser
Цитата(Андрей К. Ф. @ Sep 18 2008, 10:33) *
Пробую подключиться к интернет через модем FASTRACK WISMO (TCP/IP). В Гипертерминале пишу...

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

То, что вы делали, это запуск PPP сессии. Вам в ответ тоже нужно "также посвистеть" в бинарном виде по протоколу PPP smile.gif
Андрей К. Ф.
Цитата(Baser @ Sep 18 2008, 12:59) *
А что вы понимаете под словами "Пробую подключиться к интернет"? Что вы собирались увидеть в гипертерминале?

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


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

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

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

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

Цитата
Если я правильно понял, АТ-командами нельзя отправить почту?
Зачем тогда нужны "AT-команды для работы с IP стеком" (AT#......)?
Думаю, все можно, только для использования внутреннего стека нужно применять свой набор команд в определенной последовательности. Какой - не скажу, см. выше...
Harbinger
Цитата(Baser @ Sep 18 2008, 17:56) *
Думаю, все можно, только для использования внутреннего стека нужно применять свой набор команд в определенной последовательности. Какой - не скажу, см. выше...

Самое первое - включить стек (AT+WOPEN=1) и перезагрузить модуль (AT+CFUN=1), чтобы на AT# ERRORами не ругался. А дальше - как книга пишет wink.gif
Воффка
Цитата(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 я выполнял). Помогите пожалуйста разобраться в чем может быть проблема. Заранее благодарен.
ass20
Цитата(Андрей К. Ф. @ Sep 18 2008, 11:33) *
Здравствуйте, господа. Направьте меня на путь истинный! Пробую подключиться к интернет через модем 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?



у меня почти такая же проблема, я соединяюсь через Q2686 использую его как обычный жпрс модем, т.е. подключаю к компу ставлю дрова, создаю соединение прописываю АПН , но в инет не попадаю(((
наблюдается следующее, соединение появляется и сразу рвется,(в трее появляется значек соединения и исчезает((() в порт выкидывается NO CARRIER

как бороться с этим не знаю ....
sobr
Блин... создайте новую тему.
Воффка
Цитата(imatveev13 @ Mar 25 2008, 19:47) *
когда приходит событие
WIP_CEV_WRITE
А можно вопрос: а когда названное событие приходит?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.