17#ifndef AT_CELLULARCONTEXT_H_
18#define AT_CELLULARCONTEXT_H_
22#include "rtos/Semaphore.h"
23#include "AT_CellularDevice.h"
26const int MAX_APN_LENGTH = 63 + 1;
56 virtual void set_credentials(
const char *apn,
const char *uname = 0,
const char *pwd = 0);
61 CellularContext::RateControlUplinkTimeUnit &time_unit,
int &uplink_rate);
67#if (DEVICE_SERIAL && DEVICE_INTERRUPTIN) || defined(DOXYGEN_ONLY)
76 virtual void enable_hup(
bool enable);
94 virtual void do_disconnect();
106 virtual void deactivate_non_ip_context();
107 virtual void deactivate_ip_context();
108 virtual void set_disconnect();
109 virtual void deactivate_context();
110 virtual bool get_context();
111 AT_CellularDevice::CellularProperty pdp_type_t_to_cellular_property(pdp_type_t pdp_type);
112 bool set_new_context(
int cid);
119#if NSAPI_PPP_AVAILABLE
121 void ppp_status_cb(nsapi_event_t ev, intptr_t ptr);
122 void ppp_disconnected();
125 virtual void activate_context();
128 void check_and_deactivate_context();
129 void delete_current_context();
131 void ciot_opt_cb(mbed::CellularNetwork::CIoT_Supported_Opt ciot_opt);
132 virtual void do_connect_with_retry();
133 void set_cid(
int cid);
136 ContextOperation _current_op;
144 char _found_apn[MAX_APN_LENGTH];
Cellular PDP context class.
virtual char * get_interface_name(char *interface_name)
Get the network interface name.
virtual void attach(mbed::Callback< void(nsapi_event_t, intptr_t)> status_cb)
Register callback for status reporting.
virtual nsapi_error_t disconnect()
Stop the interface.
virtual nsapi_error_t get_ip_address(SocketAddress *address)
Get the local IP address.
virtual nsapi_error_t connect(const char *sim_pin, const char *apn=0, const char *uname=0, const char *pwd=0)
Attempt to connect to a cellular network with a PIN and credentials.
virtual void set_sim_pin(const char *sim_pin)
Set the PIN code for SIM card.
virtual uint32_t get_timeout_for_operation(ContextOperation op) const
Get the operation specific timeout.
virtual nsapi_error_t register_to_network()
Start the interface.
virtual bool is_connected()
Check if the connection is currently established.
virtual nsapi_error_t connect()
Attempt to connect to a cellular network.
virtual nsapi_error_t do_user_authentication()
Does the authentication for the PDP Context if user name and password are provided.
virtual void cellular_callback(nsapi_event_t ev, intptr_t ptr)
The CellularDevice calls the status callback function on status changes on the network or CellularDev...
virtual void set_credentials(const char *apn, const char *uname=0, const char *pwd=0)
Set the cellular network credentials.
virtual nsapi_error_t get_rate_control(CellularContext::RateControlExceptionReports &reports, CellularContext::RateControlUplinkTimeUnit &time_unit, int &uplink_rate)
Get APN rate control.
virtual nsapi_connection_status_t get_connection_status() const
Get the connection status.
virtual ControlPlane_netif * get_cp_netif()
Returns the control plane AT command interface.
virtual nsapi_error_t set_blocking(bool blocking)
Set asynchronous operation of connect() and disconnect() calls.
virtual nsapi_error_t set_device_ready()
Start the interface.
virtual void set_plmn(const char *plmn)
Set the plmn.
virtual const char * get_nonip_context_type_str()
Get string name for NIDD context type.
virtual nsapi_error_t get_pdpcontext_params(pdpContextList_t ¶ms_list)
Get the relevant information for an active nonsecondary PDP context.
virtual nsapi_error_t attach_to_network()
Start the interface.
virtual nsapi_error_t set_sim_ready()
Start the interface.
virtual nsapi_error_t configure_hup(PinName dcd_pin=NC, bool active_high=false)
Enable or disable hang-up detection.
virtual void do_connect()
Activates PDP context or in PPP mode opens data channel.
virtual nsapi_error_t get_apn_backoff_timer(int &backoff_timer)
Get backoff timer value.
Class for sending AT commands and parsing AT responses.
Callback class based on template specialization.
CellularContext is CellularInterface/NetworkInterface with extensions for cellular connectivity.
Implements support for data transfer using Control Plane CIoT EPS optimization specified in 3GPP 23....
The Semaphore class is used to manage and protect access to a set of shared resources.
signed int nsapi_error_t
Type used to represent error codes.