Здравствуйте.
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 } }
|