Simulate provide local info command
PATCH 1/1 Simulate provide local info command
--- src/simapplication.cpp | 263 ++++++++++++++++++++++++++++++++++++++++++++++++ src/simapplication.h | 2 + 2 files changed, 265 insertions(+), 0 deletions(-)
src/simapplication.cpp +263 -0
@@ -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<QSimMenuItem> 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(); + } +}
src/simapplication.h +2 -0
@@ -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;
Signature · 1 line
1.7.2.3
Hi Yang,
Quoted 13 lines · Yang Gu
--- src/simapplication.cpp | 263 ++++++++++++++++++++++++++++++++++++++++++++++++ src/simapplication.h | 2 + 2 files changed, 265 insertions(+), 0 deletions(-)src/simapplication.cpp +8
-0+#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
src/simapplication.cpp const QString DemoSimApplication::getName() · line 363
Quoted 10 lines
src/simapplication.cpp +10
-0+#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 +
We should really only support Time and Lang, the others are actually better handled by the modem firmware.
Regards,
-Denis