From: Philippe Nunes <philippe.nunes@linux.intel.com>
To: ofono@ofono.org
Subject: [PATCH 4/7] hardwaremanipulator: Add UCS2 encoding support for CBS message
Date: Mon, 25 Jun 2012 16:38:00 +0200 [thread overview]
Message-ID: <1340635083-5877-5-git-send-email-philippe.nunes@linux.intel.com> (raw)
In-Reply-To: <1340635083-5877-1-git-send-email-philippe.nunes@linux.intel.com>
[-- Attachment #1: Type: text/plain, Size: 6442 bytes --]
---
src/control.cpp | 6 ++----
src/hardwaremanipulator.cpp | 28 +++++++++++++++-------------
src/hardwaremanipulator.h | 6 ++++--
3 files changed, 21 insertions(+), 19 deletions(-)
diff --git a/src/control.cpp b/src/control.cpp
index 27910c2..89dd294 100644
--- a/src/control.cpp
+++ b/src/control.cpp
@@ -329,12 +329,10 @@ void ControlWidget::sendREG()
void ControlWidget::sendCBM()
{
- QString pdu = p->constructCBMessage(ui->leMessageCode->text(),ui->cbGeographicalScope->currentIndex(),
- ui->leUpdateNumber->text(),ui->leChannel->text(),ui->leScheme->text(),
+ p->constructCBMessage(ui->leMessageCode->text(),ui->cbGeographicalScope->currentIndex(),
+ ui->leUpdateNumber->text(),ui->leChannel->text(),ui->cbScheme->currentIndex(),
ui->cbLanguage->currentIndex(),ui->leNumPages->text(),ui->lePage->text(),
ui->teContent->toPlainText());
-
- emit unsolicitedCommand(QString("+CBM: ")+QString::number(pdu.length()/2)+'\r'+'\n'+ pdu);
}
void ControlWidget::sendSMSMessage()
diff --git a/src/hardwaremanipulator.cpp b/src/hardwaremanipulator.cpp
index 909ce2a..c19b507 100644
--- a/src/hardwaremanipulator.cpp
+++ b/src/hardwaremanipulator.cpp
@@ -62,8 +62,8 @@ void HardwareManipulator::setPhoneNumber( const QString& )
QString PS_toHex( const QByteArray& binary );
-QString HardwareManipulator::constructCBMessage(const QString &messageCode, int geographicalScope, const QString &updateNumber,
- const QString &channel, const QString &/*scheme*/, int language, const QString &numPages, const QString &page, const QString &content)
+void HardwareManipulator::constructCBMessage(const QString &messageCode, int geographicalScope, const QString &updateNumber,
+ const QString &channel, int scheme, int language, const QString &numPages, const QString &page, const QString &content)
{
bool ok;
@@ -71,7 +71,7 @@ QString HardwareManipulator::constructCBMessage(const QString &messageCode, int
if ( !ok ) {
warning(tr("Invalid Message Code"),
tr("Message code 3 hex digits long and no larger than 3FF"));
- return "";
+ return;
}
@@ -82,7 +82,7 @@ QString HardwareManipulator::constructCBMessage(const QString &messageCode, int
warning(tr("Invalid Update Number"),
tr("Update number must be 1 hex digit long"
"and no larger than F"));
- return "";
+ return;
}
@@ -91,14 +91,9 @@ QString HardwareManipulator::constructCBMessage(const QString &messageCode, int
warning(tr("Invalid Channel,"),
tr("Channel must be 4 hex digits long "
"and no larger than FFFF"));
- return "";
+ return;
}
- //scheme is currently hardcoded to QSMS8_BitCodingScheme
- //uint sch = convertString(scheme, NIBBLE_MAX, ONE_CHAR,HEX_BASE,&ok);
- //if ( !ok )
- // return "";
-
QCBSMessage::Language lang = (QCBSMessage::Language)language;
uint npag = convertString(numPages, NIBBLE_MAX,ONE_CHAR,HEX_BASE,&ok);
@@ -106,7 +101,7 @@ QString HardwareManipulator::constructCBMessage(const QString &messageCode, int
warning(tr("Invalid number of pages,"),
tr("Number of pages must be 1 hex digit long "
"and no larger than F"));
- return "";
+ return;
}
uint pag = convertString(page, NIBBLE_MAX,ONE_CHAR,HEX_BASE,&ok);
@@ -114,7 +109,7 @@ QString HardwareManipulator::constructCBMessage(const QString &messageCode, int
warning(tr("Invalid page number,"),
tr("Page number must be 1 hex digit long "
"and no larger than F"));
- return "";
+ return;
}
QCBSMessage m;
@@ -123,11 +118,18 @@ QString HardwareManipulator::constructCBMessage(const QString &messageCode, int
m.setUpdateNumber(un);
m.setChannel(ch);
m.setLanguage(lang);
+ m.setDataCodingScheme(scheme == 0 ? QSMS_DefaultAlphabet : QSMS_UCS2Alphabet);
m.setNumPages(npag);
m.setPage(pag);
m.setText(content);
- return PS_toHex( m.toPdu() );
+ sendCBS(m);
+}
+
+void HardwareManipulator::sendCBS( const QCBSMessage &m )
+{
+ QByteArray pdu = m.toPdu();
+ emit unsolicitedCommand(QString("+CBM: ")+QString::number(pdu.length())+'\r'+'\n'+ PS_toHex(pdu));
}
void HardwareManipulator::constructSMSMessage( const int type, const QString &sender, const QString &serviceCenter, const QString &text )
diff --git a/src/hardwaremanipulator.h b/src/hardwaremanipulator.h
index 881125e..75e0a94 100644
--- a/src/hardwaremanipulator.h
+++ b/src/hardwaremanipulator.h
@@ -25,6 +25,7 @@
#include "qsmsmessagelist.h"
class QSMSMessage;
+class QCBSMessage;
class QVMMessage;
class SimRules;
struct CallInfo;
@@ -43,6 +44,7 @@ public slots:
virtual void handleToData( const QString& );
virtual void setPhoneNumber( const QString& );
virtual void constructSMSMessage(const int type, const QString &sender, const QString &serviceCenter, const QString &text);
+ virtual void sendCBS( const QCBSMessage& m );
virtual void sendSMS( const QSMSMessage& m );
virtual void sendVMNotify( int type, int count, const QList<QVMMessage> &received, const QList<QVMMessage> &deleted, const QString &mailbox );
virtual void sendUSSD( bool cancel, bool response, const QString &content );
@@ -63,8 +65,8 @@ signals:
void stateChangedToHangup( int callId );
protected:
- virtual QString constructCBMessage(const QString &messageCode, int geographicalScope, const QString &updateNumber, const QString &channel,
- const QString &scheme, int language, const QString &numPages, const QString &page, const QString &content);
+ virtual void constructCBMessage(const QString &messageCode, int geographicalScope, const QString &updateNumber, const QString &channel,
+ int scheme, int language, const QString &numPages, const QString &page, const QString &content);
virtual void constructSMSDatagram(int src, int dst, const QString &sender, const QByteArray &data, const QByteArray &contentType);
virtual void warning(const QString &title, const QString &message);
--
1.7.9.5
next prev parent reply other threads:[~2012-06-25 14:38 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-25 14:37 [PATCH 0/7] phonesim: Add UCS2 encoding support for CBS/USSD Philippe Nunes
2012-06-25 14:37 ` [PATCH 1/7] control: Fix empty sender checking Philippe Nunes
2012-06-22 8:20 ` Denis Kenzior
2012-06-25 14:37 ` [PATCH 2/7] controbase: Add combobox for CBS scheme selection Philippe Nunes
2012-06-22 8:08 ` Denis Kenzior
2012-06-25 14:37 ` [PATCH 3/7] qcbsmessage: Extend QCBSMessage class Philippe Nunes
2012-06-22 14:36 ` Denis Kenzior
2012-06-25 14:38 ` Philippe Nunes [this message]
2012-06-25 14:38 ` [PATCH 5/7] hardwaremanipulator: Add multi-page support for CBS message Philippe Nunes
2012-06-22 8:12 ` Denis Kenzior
2012-06-25 14:38 ` [PATCH 6/7] sms: Extend CBS message formating to use UCS2 scheme Philippe Nunes
2012-06-22 14:36 ` Denis Kenzior
2012-06-25 14:38 ` [PATCH 7/7] hardwaremanipulator: Add USC2 encoding support for USSD Philippe Nunes
2012-06-22 14:09 ` Denis Kenzior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1340635083-5877-5-git-send-email-philippe.nunes@linux.intel.com \
--to=philippe.nunes@linux.intel.com \
--cc=ofono@ofono.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox