--- src/simapplication.cpp | 263 ++++++++++++++++++++++++++++++++++++++++++++++++ src/simapplication.h | 2 + 2 files changed, 265 insertions(+), 0 deletions(-) diff --git a/src/simapplication.cpp b/src/simapplication.cpp index 7dc580f..901c5b9 100644 --- a/src/simapplication.cpp +++ b/src/simapplication.cpp @@ -284,6 +284,7 @@ const QString DemoSimApplication::getName() #define MainMenu_SendSS 11 #define MainMenu_Language 12 #define MainMenu_SendUSSD 13 +#define MainMenu_LocalInfo 14 #define SportsMenu_Chess 1 #define SportsMenu_Painting 2 @@ -342,6 +343,24 @@ const QString DemoSimApplication::getName() #define SendUSSD_Error 4 #define SendUSSD_Main 5 +#define LocalInfoMenu_Loc 1 +#define LocalInfoMenu_IMEI 2 +#define LocalInfoMenu_NMR 3 +#define LocalInfoMenu_Time 4 +#define LocalInfoMenu_Lang 5 +#define LocalInfoMenu_TimingAdvance 6 +#define LocalInfoMenu_Tech 7 +#define LocalInfoMenu_ESN 8 +#define LocalInfoMenu_IMEISV 9 +#define LocalInfoMenu_SearchMode 10 +#define LocalInfoMenu_Battery 11 +#define LocalInfoMenu_MEID 12 +#define LocalInfoMenu_WSID 13 +#define LocalInfoMenu_Broadcast 14 +#define LocalInfoMenu_Techs 15 +#define LocalInfoMenu_Locs 16 +#define LocalInfoMenu_NMRs 17 + void DemoSimApplication::mainMenu() { QSimCommand cmd; @@ -402,6 +421,10 @@ void DemoSimApplication::mainMenu() item.setLabel( "Send USSD" ); items += item; + item.setIdentifier( MainMenu_LocalInfo ); + item.setLabel( "Provide Local Information" ); + items += item; + cmd.setMenuItems( items ); command( cmd, 0, 0 ); @@ -514,6 +537,12 @@ void DemoSimApplication::mainMenuSelection( int id ) } break; + case MainMenu_LocalInfo: + { + sendLocalInfoMenu(); + } + break; + default: { // Don't know what this item is, so just re-display the main menu. @@ -1832,3 +1861,237 @@ void DemoSimApplication::USSDMenu( const QSimTerminalResponse& resp ) endSession(); } } + +void DemoSimApplication::sendLocalInfoMenu() +{ + QSimCommand cmd; + QSimMenuItem item; + QList items; + + cmd.setType( QSimCommand::SelectItem ); + cmd.setTitle( "Provide Local Information" ); + + item.setIdentifier( LocalInfoMenu_Loc ); + item.setLabel( "Location Information" ); + items += item; + + item.setIdentifier( LocalInfoMenu_IMEI ); + item.setLabel( "IMEI" ); + items += item; + + item.setIdentifier( LocalInfoMenu_NMR ); + item.setLabel( "Network Measurement results" ); + items += item; + + item.setIdentifier( LocalInfoMenu_Time ); + item.setLabel( "Date, time and time zone" ); + items += item; + + item.setIdentifier( LocalInfoMenu_Lang ); + item.setLabel( "Language setting" ); + items += item; + + item.setIdentifier( LocalInfoMenu_TimingAdvance ); + item.setLabel( "Timing Advance" ); + items += item; + + item.setIdentifier( LocalInfoMenu_Tech ); + item.setLabel( "Access Technology" ); + items += item; + + item.setIdentifier( LocalInfoMenu_ESN ); + item.setLabel( "ESN" ); + items += item; + + item.setIdentifier( LocalInfoMenu_IMEISV ); + item.setLabel( "IMEISV" ); + items += item; + + item.setIdentifier( LocalInfoMenu_SearchMode ); + item.setLabel( "Search Mode" ); + items += item; + + item.setIdentifier( LocalInfoMenu_Battery ); + item.setLabel( "Charge State of the Battery" ); + items += item; + + item.setIdentifier( LocalInfoMenu_MEID ); + item.setLabel( "MEID" ); + items += item; + + item.setIdentifier( LocalInfoMenu_WSID ); + item.setLabel( "WSID" ); + items += item; + + item.setIdentifier( LocalInfoMenu_Broadcast ); + item.setLabel( "Broadcast Network information" ); + items += item; + + item.setIdentifier( LocalInfoMenu_Techs ); + item.setLabel( "Multiple Access Technologies" ); + items += item; + + item.setIdentifier( LocalInfoMenu_Locs ); + item.setLabel( "Location Information for multiple access technologies" ); + items += item; + + item.setIdentifier( LocalInfoMenu_NMRs ); + item.setLabel( "Network Measurement results for multiple access technologies" ); + items += item; + + cmd.setMenuItems( items ); + + command( cmd, this, SLOT(localInfoMenu(QSimTerminalResponse)) ); +} + +void DemoSimApplication::localInfoMenu( const QSimTerminalResponse& resp ) +{ + QSimCommand cmd; + + if ( resp.result() == QSimTerminalResponse::Success ) { + switch ( resp.menuItem() ) { + + case LocalInfoMenu_Loc: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x00 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_IMEI: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x01 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_NMR: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x02 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_Time: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x03 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_Lang: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x04 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_TimingAdvance: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x05 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_Tech: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x06 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_ESN: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x07 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_IMEISV: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x08 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_SearchMode: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x09 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_Battery: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x0A ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_MEID: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x0B ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_WSID: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x0C ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_Broadcast: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x0D ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_Techs: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x0E ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_Locs: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x0F ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_NMRs: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x10 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + default: + endSession(); + break; + } + } else { + endSession(); + } +} diff --git a/src/simapplication.h b/src/simapplication.h index 9d147ee..933635c 100644 --- a/src/simapplication.h +++ b/src/simapplication.h @@ -113,6 +113,8 @@ protected slots: void languageMenu( const QSimTerminalResponse& resp ); void sendUSSDMenu(); void USSDMenu( const QSimTerminalResponse& resp ); + void sendLocalInfoMenu(); + void localInfoMenu ( const QSimTerminalResponse& resp ); private: int sticksLeft; -- 1.7.2.3