diff options
author | Denis Kenzior <denkenz@gmail.com> | 2011-08-11 03:02:42 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2011-08-11 04:20:45 -0500 |
commit | 11d7df82fef8eb51d4c773a5ddb172e52cb306cd (patch) | |
tree | ef98bff1c93657adce71b067e561b9b3635abf99 | |
parent | db5ea99c8d7b38b2e3a4915e808587f26e90298a (diff) | |
download | phonesim-11d7df82fef8eb51d4c773a5ddb172e52cb306cd.tar.gz |
simapp: Add 'Modem Handled' commands
-rw-r--r-- | src/simapplication.cpp | 72 | ||||
-rw-r--r-- | src/simapplication.h | 2 |
2 files changed, 74 insertions, 0 deletions
diff --git a/src/simapplication.cpp b/src/simapplication.cpp index e0adf6b..bede410 100644 --- a/src/simapplication.cpp +++ b/src/simapplication.cpp @@ -315,6 +315,7 @@ const QString DemoSimApplication::getName() #define MainMenu_Refresh 17 #define MainMenu_LocalInfo 18 #define MainMenu_BIP 19 +#define MainMenu_Handled 20 #define SportsMenu_Chess 1 #define SportsMenu_Painting 2 @@ -381,6 +382,8 @@ const QString DemoSimApplication::getName() #define BIPMenu_SendData_Store 6 #define BIPMenu_GetChannelStatus 7 +#define Handled_SendSMS 1 + enum SendSMSMenuItems { SendSMS_Unpacked = 1, SendSMS_Packed, @@ -485,6 +488,10 @@ void DemoSimApplication::mainMenu() item.setLabel( "BIP commands" ); items += item; + item.setIdentifier( MainMenu_Handled ); + item.setLabel( "Modem-Handled commands" ); + items += item; + cmd.setMenuItems( items ); command( cmd, 0, 0 ); @@ -633,6 +640,12 @@ void DemoSimApplication::mainMenuSelection( int id ) } break; + case MainMenu_Handled: + { + sendHandledMenu(); + } + break; + default: { // Don't know what this item is, so just re-display the main menu. @@ -2616,3 +2629,62 @@ void DemoSimApplication::sendBIPMenu() command( cmd, this, SLOT(BIPMenu(QSimTerminalResponse)) ); } + +void DemoSimApplication::sendHandledMenu() +{ + QSimCommand cmd; + QSimMenuItem item; + QList<QSimMenuItem> items; + + cmd.setType( QSimCommand::SelectItem ); + cmd.setTitle( "Modem-Handled Commands Menu" ); + + item.setIdentifier( Handled_SendSMS ); + item.setLabel( "Send Modem-Handled SMS" ); + items += item; + + cmd.setMenuItems( items ); + + command( cmd, this, SLOT(handledMenuResp(QSimTerminalResponse)) ); +} + +void DemoSimApplication::handledMenuResp( const QSimTerminalResponse& resp ) +{ + QSimCommand cmd; + + if ( resp.result() != QSimTerminalResponse::Success ) { + /* Unknown response - just go back to the main menu. */ + endSession(); + + return; + } + + /* Item selected. */ + switch ( resp.menuItem() ) { + case Handled_SendSMS: + { + QSMSMessage sms; + sms.setValidityPeriod( -1 ); + sms.setMessageClass( 2 ); + sms.setProtocol( 0 ); + sms.setRecipient( "12345" ); + sms.setText( smsText ); + sms.setForceGsm( false ); + sms.setBestScheme( QSMS_8BitAlphabet ); + sms.setDataCodingScheme( 0xf6 ); + + cmd.setType( QSimCommand::SendSMS ); + cmd.setText( "Sending an SMS to our friends at 12345" ); + cmd.setNumber( "123" ); + cmd.addExtensionField( 0x8b, sms.toPdu().mid( 1 ) ); + cmd.setDestinationDevice( QSimCommand::Network ); + + modemHandledCommand(cmd, 6000); + break; + } + + default: + endSession(); + break; + } +} diff --git a/src/simapplication.h b/src/simapplication.h index 6134e2d..54ef103 100644 --- a/src/simapplication.h +++ b/src/simapplication.h @@ -133,6 +133,8 @@ protected slots: void localInfoMenu( const QSimTerminalResponse& resp ); void sendBIPMenu(); void BIPMenu( const QSimTerminalResponse& resp ); + void sendHandledMenu(); + void handledMenuResp( const QSimTerminalResponse& resp ); private: int sticksLeft; |