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

 
 
> Open AT. Wip_bearerGetOpts() не работает., Как узнать код ошибки?
kav
сообщение Apr 6 2009, 07:46
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 9-12-08
Пользователь №: 42 313



Здравствуйте.

Wavecom Fastrack Supreme 20, OpenAT(Oasis 2.12),
fw R72a00gg.Q2687G, WIP 5.00.2050

Бьемся с такой проблемой.
Не понятно как работает функция Wip_bearerGetOpts(). Может кто сталкивался, разъясните.
Ниже приведен пример, в котором должно устанавливаться GSM соединение, но оно не устанавливается и нет никакой возможности понять конкретно из-за какой ошибки.
Из документации прочитали,что при возникновении события WIP_BEV_CONN_FAILED можно посредством Wip_bearerGetOpts() вернуть код ошибки, но программа как-то странно вылетает, те опять запускается adl_main . В чем грабли?

#include "adl_global.h"
#include "wip.h"

#define PPP_USER "proba"
#define PPP_PASSWORD "proba"
#define REMOTE_GSM_DIALNB "89012345678"

wip_bearer_t my_bearer;

//обработчик событий GSM-канала
void my_BearerHandler (wip_bearer_t br, s8 event, void * context)
{ s8 res, b_err, b_g;

switch (event)
{
case WIP_BEV_IP_CONNECTED: // GSM-соединение установлено
{break;}
case WIP_BEV_IP_DISCONNECTED: // GSM-соединение неожиданно разорвано
{break;}
case WIP_BEV_CONN_FAILED: // ошибка при установке GSM-соединения
{b_g = wip_bearerGetOpts(br,WIP_BOPT_ERROR, b_err,WIP_BOPT_END);
if (b_g==0)
{ adl_atSendResponse ( ADL_AT_UNS, "\r\nwip_bearerGetOpts - OK.\r\n" );}
break;}
case WIP_BEV_STOPPED: // GSM-соединение корректно завершено
{break;}
}

}

void adl_main ( adl_InitType_e InitType )
{ int r;
r = wip_netInitOpts(
WIP_NET_OPT_DEBUG_PORT, WIP_NET_DEBUG_PORT_UART1, /* WIP traces on UART1 */
//WIP_NET_OPT_DEBUG_PORT, WIP_NET_DEBUG_PORT_UART2,
//WIP_NET_OPT_DEBUG_PORT, WIP_NET_DEBUG_PORT_TRACE,
WIP_NET_OPT_END);

wip_bearerOpen(&my_bearer, "GSM", my_BearerHandler, NULL)

wip_bearerSetOpts(my_bearer,
WIP_BOPT_LOGIN, PPP_USER,
WIP_BOPT_PASSWORD, PPP_PASSWORD,
WIP_BOPT_DIAL_PHONENB, REMOTE_GSM_DIALNB,
WIP_BOPT_END)

res=wip_bearerStart(my_bearer);
if (res==0) // GSM соединился сразу же нормально
{adl_atSendResponse ( ADL_AT_UNS, "\r\nGSM CONNECTION-SUCCESSFULLY\r\n" );}
//ничего не делаем, ждём события WIP_BEV_IP_CONNECTED
else
{ if (res==WIP_BERR_OK_INPROGRESS)// GSM в процессе соединения
{adl_atSendResponse ( ADL_AT_UNS, "\r\nIN PROGRESS-4\r\n" );}
//ничего не делаем, ждём события WIP_BEV_IP_CONNECTED
}

}
Go to the top of the page
 
+Quote Post



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

 


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


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