Wavecom Q64
OpenAT R7.3
Ни под каким углом не могу заставить модем отсылать sms c помощью функции adl_smsSend. Упорно возвращается ошибка -8 (ADL_RET_ERR_BAD_STATE), означающая the product is not ready to send an SMS (initialization not yet performed, or sending an SMS already in progress)
Но при этом "продукт" прекрасно отсылает сообщения с помощью at-команд (at+cmgs ...). Само OpenAT-приложение чётко принимает входящие сообщения. Если послать на виртуальный порт at+csca? то возвращается csca: "+79219909090",145 , то есть по идее номер провайдера модуль знает.
Что делать? Где искать засаду ?
Вот основные фрагменты кода:
Код
static s8 SmsHandle = -1;
static s32 SmsResult;
static ascii SmsSendBuffer[200];
static ascii SmsSendNumber[20];
void adl_main ( adl_InitType_e InitType )
{
...
SmsHandle = adl_smsSubscribe (SmsReceivedHandler,SmsControlHandler,ADL_SMS_MODE_TEXT);
...
}
static bool SmsReceivedHandler(ascii *SmsTel, ascii *SmsTimeOrLength, ascii *SmsText)
{
...
return TRUE;
}
static void HeartbeatTimerHandler ( u8 ID, void * Context )
{
...
ascii stemp[64];
HeartbeatCounter++;
...
if (HeartbeatCounter==6)
{
//adl_atCmdCreate( "at+csca=\"+79219909090\"",FALSE,(adl_atRspHandler_t)NULL,NULL);
SmsResult = adl_smsSend(SmsHandle,SmsSendNumber,SmsSendBuffer,ADL_SMS_MODE_TEXT);
wm_sprintf(stemp,"adl_smsSend result %d\r\n",SmsResult);
adl_atSendResponse ( ADL_AT_UNS,stemp);
}
}