Detailed Description
The QModemSimToolkit class provides access to SIM toolkit functionality for AT-based modems.
QModemSimToolkit implements the QSimToolkit telephony interface. Client applications should use QSimToolkit instead of this class to access the modem's SIM toolkit facilities.
There are no 3GPP standard for AT commands to access the SIM toolkit. This class will fail begin() requests, indicating that there is no SIM toolkit in the system. Modem vendor plug-ins should inherit this class and implement SIM toolkit with their own proprietary commands.
Default implementations of sendResponse() and sendEnvelope() are provided which send the binary formats from 3GPP TS 11.14 to the SIM using the AT+CSIM command. While this may work for some modems, most modem vendor plugins will need to override sendResponse() and sendEnvelope() and use their own commands.
The fetchCommand() function provides support for modems that use AT+CSIM to fetch proactive SIM commands. However, it is still necessary for the modem vendor plugin to detect when a command is available and then call fetchCommand().
See also QSimToolkit.
Member Function Documentation
QModemSimToolkit::QModemSimToolkit ( QModemService * service )
Create a modem SIM toolkit handler for service.
QModemSimToolkit::~QModemSimToolkit ()
Destroy this modem SIM toolkit handler.
void QModemSimToolkit::fetchCommand ( int size ) [protected]
Directs QModemSimToolkit to fetch the current proactive SIM command with the AT+CSIM command. The size indicates the size of the command that is waiting to be fetched. Once the command is fetched, this calls emitCommandAndRespond().
This function is intended for modem vendor plugins that use AT+CSIM to fetch proactive SIM commands. This function is typically called when the modem vendor plugin receives an unsolicited notification indicating that a new command is available.
If the modem uses some command other than AT+CSIM to fetch the current proactive SIM command, this function should be ignored. Instead, the modem vendor plugin should fetch the command using the modem's proprietry commands and then call emitCommandAndRespond().
See also emitCommandAndRespond().
void QModemSimToolkit::initializationDone () [protected]
Indicate that SIM toolkit initialization has finished.
See also initializationStarted().
void QModemSimToolkit::initializationStarted () [protected]
Indicate that SIM toolkit initialization has started.
See also initializationDone().
void QModemSimToolkit::initialize () [virtual slot]
Initialize the SIM toolkit functionality. Once initialization is complete, the modem vendor object must call initializationDone().
If the initialization will take some time, and will not be complete before initialize() returns, the implementation should call initializationStarted().
The default implementation calls initializationDone().
void QModemSimToolkit::sendEnvelope ( const QSimEnvelope & env ) [virtual slot]
Sends an ENVELOPE env to the SIM toolkit application. This is typically used for selecting items from the main menu.
The implementation in QModemSimToolkit sends the envelope to the SIM using the AT+CSIM command. This will need to be overridden by the modem vendor plugin if the modem uses some other mechanism for sending envelopes to the SIM.
Reimplemented from QSimToolkit.
See also sendResponse() and command().
void QModemSimToolkit::sendResponse ( const QSimTerminalResponse & resp ) [virtual slot]
Sends a TERMINAL RESPONSE resp for the last SIM toolkit command that was received via command(). The command must be set on the response with QSimTerminalResponse::setCommand() so that the SIM knows which command is being responded to.
The implementation in QModemSimToolkit sends the response to the SIM using the AT+CSIM command. This will need to be overridden by the modem vendor plugin if the modem uses some other mechanism for sending terminal responses to the SIM.
Reimplemented from QSimToolkit.
See also sendEnvelope(), command(), and QSimTerminalResponse::setCommand().
QModemService * QModemSimToolkit::service () const
Return the QModemService that this handler is associated with.