Corrections au client VOIP sms. Pas encore au point.

This commit is contained in:
J-F Martel 2018-02-03 12:59:53 -05:00
parent f31358e6dd
commit f682d7ba5a
2 changed files with 204 additions and 62 deletions

View File

@ -21,10 +21,12 @@ CVoipMsSMSClient::CVoipMsSMSClient()
connect(mCheckNewSMSTimer,SIGNAL(timeout()),this,SLOT(CheckNewSMSTimerExpired()));
mCheckNewSMSTimer->setSingleShot(false);
mFirstDownloadDone = false;
//mFirstDownloadDone = false;
mProgramHandle = 0;
mSMSDownloadState = VOIPMS_SMS_DOWNLOAD_INIT_STATE;
}
CVoipMsSMSClient::~CVoipMsSMSClient()
@ -47,7 +49,9 @@ unsigned int CVoipMsSMSClient::SetVOIPMsSettings(CVoipMSSMSSettings *SettingsDat
int CVoipMsSMSClient::DownloadSMSFromServer()
{
qDebug("Downloading messages until %s",mVOIPMsSettings.mStartDate.toString("yyyy-MM-dd").toUtf8().data());
mCurStartDate = QDate::currentDate().addDays(-VOIP_MS_SMS_DATESPAN);
mSMSDownloadState = VOIPMS_SMS_DOWNLOAD_SPAN_MSGS_STATE;
SendSMSDownloadRequest(mCurStartDate,QDate::currentDate());
mSMSMessagesList.clear();
@ -280,7 +284,7 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
QDateTime NewDate = NewMessages.at(0).mDateTime;
QDateTime OldDate = mSMSMessagesList.at(0).mDateTime;
if(NewDate > OldDate)
if(NewDate >= OldDate)
{
while(!finished)
{
@ -301,24 +305,24 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
finished = true;
}
}
if(mFirstDownloadDone == true && NewMessages.size() > 0)
{
mProgramHandle->NewSMSMessagesArrived(NewMessages);
// if(mFirstDownloadDone == true && NewMessages.size() > 0)
// {
// mProgramHandle->NewSMSMessagesArrived(NewMessages);
qDebug() << "Added " << NewMessages.size() << " new SMS messages";
qDebug("-----------------------------------------------------------------------");
qDebug(" ");
for(int i = 0; i < NewMessages.size(); i++)
{
qDebug() << NewMessages.at(i).mDateTime.toString("yyyy-MM-dd hh:mm:ss") << " : " << NewMessages.at(i).mContact << " : " << NewMessages.at(i).mMessageText.toUtf8().data();
}
qDebug("-----------------------------------------------------------------------");
qDebug(" ");
}
// qDebug() << "Added " << NewMessages.size() << " new SMS messages";
// qDebug("-----------------------------------------------------------------------");
// qDebug(" ");
// for(int i = 0; i < NewMessages.size(); i++)
// {
// qDebug() << NewMessages.at(i).mDateTime.toString("yyyy-MM-dd hh:mm:ss") << " : " << NewMessages.at(i).mContact << " : " << NewMessages.at(i).mMessageText.toUtf8().data();
// }
// qDebug("-----------------------------------------------------------------------");
// qDebug(" ");
// }
NewMessages.append(mSMSMessagesList);
mSMSMessagesList = NewMessages;
StartSMSCheckTimer();
// NewMessages.append(mSMSMessagesList);
// mSMSMessagesList = NewMessages;
// StartSMSCheckTimer();
}
else
@ -343,44 +347,170 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
finished = true;
}
}
mSMSMessagesList.append(NewMessages);
StartSMSCheckTimer();
if(mFirstDownloadDone == true && NewMessages.size() > 0)
{
mProgramHandle->NewSMSMessagesArrived(NewMessages);
// mSMSMessagesList.append(NewMessages);
// StartSMSCheckTimer();
// if(mFirstDownloadDone == true && NewMessages.size() > 0)
// {
// mProgramHandle->NewSMSMessagesArrived(NewMessages);
qDebug() << "Added " << NewMessages.size() << " new SMS messages";
qDebug("-----------------------------------------------------------------------");
qDebug(" ");
for(int i = 0; i < NewMessages.size(); i++)
{
qDebug() << NewMessages.at(i).mDateTime.toString("yyyy-MM-dd hh:mm:ss") << " : " << NewMessages.at(i).mContact << " : " << NewMessages.at(i).mMessageText.toUtf8().data();
}
qDebug("-----------------------------------------------------------------------");
qDebug(" ");
}
// qDebug() << "Added " << NewMessages.size() << " new SMS messages";
// qDebug("-----------------------------------------------------------------------");
// qDebug(" ");
// for(int i = 0; i < NewMessages.size(); i++)
// {
// qDebug() << NewMessages.at(i).mDateTime.toString("yyyy-MM-dd hh:mm:ss") << " : " << NewMessages.at(i).mContact << " : " << NewMessages.at(i).mMessageText.toUtf8().data();
// }
// qDebug("-----------------------------------------------------------------------");
// qDebug(" ");
// }
}
}
else
// else
// {
// mSMSMessagesList.append(NewMessages);
// StartSMSCheckTimer();
// }
}
else
{
NewMessages.empty();
NBMsgReceived = 0;
}
// if(NewMessages.size() != 0)
// {
// mSMSMessagesList.append(NewMessages);
// qDebug("Added %d new msgs. mCurStartDate:%s", NewMessages.size(),mCurStartDate.toString("yyyy-MM-dd").toUtf8().data());
// }
switch(mSMSDownloadState)
{
case VOIPMS_SMS_DOWNLOAD_INIT_STATE:
{
mSMSMessagesList.append(NewMessages);
StartSMSCheckTimer();
qDebug("Error, mSMSDownloadState = INIT_STATE in SMSReceived()");
break;
}
if(NBMsgReceived == VOIP_MS_SMS_MAX_COUNT)
case VOIPMS_SMS_DOWNLOAD_SPAN_MSGS_STATE:
{
if(NewMessages.size() != 0)
{
mSMSMessagesList.append(NewMessages);
qDebug("Added %d new msgs. mCurStartDate:%s", NewMessages.size(),mCurStartDate.toString("yyyy-MM-dd").toUtf8().data());
}
//Restart at the last day received...
mCurStartDate = mSMSMessagesList.last().mDateTime.date();
QDate EarlierDate = mCurStartDate.addDays(-VOIP_MS_SMS_DATESPAN);
SendSMSDownloadRequest(EarlierDate,mCurStartDate);
}
else
{
if(mFirstDownloadDone == false)
if(EarlierDate < mVOIPMsSettings.mStartDate )
{
//Clipping span.
qDebug("Clipping span...");
EarlierDate = mVOIPMsSettings.mStartDate;
qDebug("Requesting data for last block of span");
mSMSDownloadState = VOIPMS_SMS_DOWNLOAD_LAST_BLOCK_MSGS_STATE;
}
qDebug("Continue receiving from %s to %s ...",mCurStartDate.toString("yyyy-MM-dd").toUtf8().data(),EarlierDate.toString("yyyy-MM-dd").toUtf8().data());
SendSMSDownloadRequest(EarlierDate,mCurStartDate);
break;
}
case VOIPMS_SMS_DOWNLOAD_LAST_BLOCK_MSGS_STATE:
{
if(NewMessages.size() != 0)
{
mSMSMessagesList.append(NewMessages);
qDebug("Added %d new msgs. mCurStartDate:%s", NewMessages.size(),mCurStartDate.toString("yyyy-MM-dd").toUtf8().data());
}
if(NBMsgReceived == VOIP_MS_SMS_MAX_COUNT)
{
mCurStartDate = mSMSMessagesList.last().mDateTime.date();
qDebug("Continue receiving from %s to %s ...",mVOIPMsSettings.mStartDate.toString("yyyy-MM-dd").toUtf8().data(),mVOIPMsSettings.mStartDate.toString("yyyy-MM-dd").toUtf8().data());
SendSMSDownloadRequest(mCurStartDate,mVOIPMsSettings.mStartDate);//download for the first day of the span only...
}
else
{
qDebug() << "Finished download of " << mSMSMessagesList.size() << " SMS messages";
// qDebug("-----------------------------------------------------------------------");
// qDebug(" ");
// for(int i = 0; i < mSMSMessagesList.size(); i++)
// {
// qDebug() << mSMSMessagesList.at(i).mDateTime.toString("yyyy-MM-dd hh:mm:ss") << " : " << mSMSMessagesList.at(i).mContact << " : " << mSMSMessagesList.at(i).mMessageText.toUtf8().data();
// }
// qDebug("-----------------------------------------------------------------------");
// qDebug(" ");
mSMSDownloadState = VOIPMS_SMS_GET_NEW_MSGS_STATE;
StartSMSCheckTimer();
qDebug("Timer started in VOIPMS_SMS_DOWNLOAD_LAST_DAY_MSGS_STATE");
}
break;
}
case VOIPMS_SMS_GET_NEW_MSGS_STATE:
{
if(NewMessages.size() != 0)
{
for(int i = NewMessages.size(); i > 0; i--)
{
mSMSMessagesList.prepend(NewMessages[i-1]);
}
qDebug("Added %d new msgs. mCurStartDate:%s", NewMessages.size(),mCurStartDate.toString("yyyy-MM-dd").toUtf8().data());
}
StartSMSCheckTimer();
qDebug("Timer started in VOIPMS_SMS_GET_NEW_MSGS_STATE");
if(NewMessages.size() > 0)
{
mProgramHandle->NewSMSMessagesArrived(NewMessages);
qDebug() << "Added " << NewMessages.size() << " new SMS messages";
qDebug("-----------------------------------------------------------------------");
qDebug(" ");
for(int i = 0; i < NewMessages.size(); i++)
{
qDebug() << NewMessages.at(i).mDateTime.toString("yyyy-MM-dd hh:mm:ss") << " : " << NewMessages.at(i).mContact << " : " << NewMessages.at(i).mMessageText.toUtf8().data();
}
qDebug("-----------------------------------------------------------------------");
qDebug(" ");
break;
}
}
}
// mCurStartDate = mSMSMessagesList.last().mDateTime.date();
// static bool DateClipped = false;;
// //if(NBMsgReceived == VOIP_MS_SMS_MAX_COUNT)
// qDebug("Received %d msgs. mCurStartDate:%s", NBMsgReceived,mCurStartDate.toString("yyyy-MM-dd").toUtf8().data());
// if(mCurStartDate > mVOIPMsSettings.mStartDate && DateClipped == false)
// {
// //Restart at the last day received...
// mCurStartDate = mSMSMessagesList.last().mDateTime.date();
// QDate EarlierDate = mCurStartDate.addDays(-VOIP_MS_SMS_DATESPAN);
// if(EarlierDate < mVOIPMsSettings.mStartDate )
// {
// //Clipping span.
// qDebug("Clipping span...");
// EarlierDate = mVOIPMsSettings.mStartDate;
// DateClipped = true;
// }
// qDebug("Continue receiving from %s to %s ...",mCurStartDate.toString("yyyy-MM-dd").toUtf8().data(),EarlierDate.toString("yyyy-MM-dd").toUtf8().data());
// SendSMSDownloadRequest(EarlierDate,mCurStartDate);
// }
// else if (/*(mCurStartDate == mVOIPMsSettings.mStartDate) &&*/ (NBMsgReceived == VOIP_MS_SMS_MAX_COUNT))
// {
// //We have covered the entire time span but we didn't get all of the messages...
// SendSMSDownloadRequest(mCurStartDate,mCurStartDate);//download for the first day of the span only...
// }
// else
// {
// if(mFirstDownloadDone == false)
// {
// qDebug() << "Finished download of " << mSMSMessagesList.size() << " SMS messages";
// qDebug("-----------------------------------------------------------------------");
// qDebug(" ");
@ -392,19 +522,20 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
// qDebug(" ");
mFirstDownloadDone = true;
// mCheckNewSMSTimer->start(VOIP_MS_SMS_CHECK_TIMEOUT);
StartSMSCheckTimer();
qDebug("Timer started");
}
// mFirstDownloadDone = true;
// DateClipped = false;
//// mCheckNewSMSTimer->start(VOIP_MS_SMS_CHECK_TIMEOUT);
// StartSMSCheckTimer();
// qDebug("Timer started");
// }
}
}
else
{
qDebug("No SMS to download in this period.");
StartSMSCheckTimer();
}
// }
// }
// else
// {
// qDebug("No SMS to download in this period.");
// StartSMSCheckTimer();
// }
return RET_OK;
}
@ -514,16 +645,18 @@ QString CVoipMsSMSClient::GetDefaultDID()
void CVoipMsSMSClient::StartSMSCheckTimer()
{
if(mFirstDownloadDone == true)
if(mSMSDownloadState == VOIPMS_SMS_GET_NEW_MSGS_STATE)
{
//qDebug("Timer started");
mCheckNewSMSTimer->start(VOIP_MS_SMS_CHECK_TIMEOUT);
}
else
{
qDebug("Trying to start SMS timer outside VOIPMS_SMS_GET_NEW_MSGS_STATE");
}
}
void CVoipMsSMSClient::StopSMSCheckTimer()
{
//qDebug("Timer Stopped");
mCheckNewSMSTimer->stop();
}

View File

@ -26,6 +26,14 @@ enum VoipMSRetValues
VOIPMS_RET_NO_DID_FOUND
};
enum eVoipMSSMSDownloadStates
{
VOIPMS_SMS_DOWNLOAD_INIT_STATE,
VOIPMS_SMS_DOWNLOAD_SPAN_MSGS_STATE,
VOIPMS_SMS_DOWNLOAD_LAST_BLOCK_MSGS_STATE,
VOIPMS_SMS_GET_NEW_MSGS_STATE
};
class CMasterCtrl;
class CVoipMsSMSClient : public QObject
@ -77,10 +85,11 @@ private:
QTcpSocket *mClientConnection;
QTimer *mCheckNewSMSTimer;
bool mFirstDownloadDone;
// bool mFirstDownloadDone;
QString mLastRequestCmd;
QList<CSMSMessage> mPendingSMSSendList;
int mSMSDownloadState;
signals: