Fork for new features

Revision:
20:31d5e048fbfa
Parent:
14:e420232ee4e7
Child:
21:98aea8f49cd8
--- a/UbloxCellularBase.h	Mon Sep 17 10:46:14 2018 +0000
+++ b/UbloxCellularBase.h	Fri Mar 22 13:45:51 2019 +0500
@@ -174,6 +174,89 @@
      */
     int rssi();
 
+    /** RAT values for +URAT command
+     * R412M only supports value 7 (CatM1), 8 (NB1), and 9 (GPRS)
+     */
+    typedef enum {
+        GSM_GPRS_EGPRS = 0,
+        GSM_UMTS = 1,
+        UMTS = 2,
+        URAT_LTE = 3,
+        GSM_UMTS_LTE = 4,
+        GSM_LTE = 5,
+        UMTS_LTE = 6,
+        LTE_CATM1 = 7,
+        LTE_CATNB1 = 8,
+        GPRS_EGPRS = 9,
+        NOT_USED = 255
+    } RAT;
+
+#ifdef TARGET_UBLOX_C030_R41XM
+    /** Supported MNO profiles for SARA-R4.
+     */
+    typedef enum {
+        SW_DEFAULT = 0,
+        SIM_ICCID = 1,
+        ATT = 2,
+        VERIZON = 3,
+        TELSTRA = 4,
+        TMO = 5,
+        CT = 6,
+        VODAFONE = 19,
+        TELUS = 21,
+        DT = 31,
+        STANDARD_EU = 100
+    } MNOProfile;
+
+    #if MBED_CONF_UBLOX_CELL_DEFAULT_MNO_PROFILE
+    #define DEFAULT_MNO_PROFILE     (MNOProfile)MBED_CONF_UBLOX_CELL_DEFAULT_MNO_PROFILE
+    #else
+    #define DEFAULT_MNO_PROFILE     SW_DEFAULT
+    #endif
+
+    /** Reads the current MNO profile from modem and sets it to user specified profile
+     *
+     * @return    true if operation was successful, false if there was an error
+     */
+    bool set_mno_profile(MNOProfile profile = DEFAULT_MNO_PROFILE);
+
+    /** Get current MNO profile.
+     *
+     * @param profile pointer to variable that can hold the value for returned profile
+     * @return    true if operation was successful, false if there was an error
+     */
+    bool get_mno_profile(MNOProfile *profile);
+#endif
+
+    /** Set Radio Access Technology on modem.
+     *
+     * Note: RAT should only be set in detached state and a reboot is required for settings to take effect
+     *
+     * @param selected_rat Radio Access Technology to use
+     * @param preferred_rat Radio Access Technology to use if selected_rat is not available
+     * @param second_preferred_rat Radio Access Technology to use if selected_rat and preferred_rat are not available
+     *
+     * @return        true if successful, otherwise false.
+     */
+    bool set_modem_rat(RAT selected_rat, RAT preferred_rat = NOT_USED, RAT second_preferred_rat = NOT_USED);
+
+    /** Get last saved values for RAT using +URAT read command. Note: The current selected RAT is indicated by DeviceInfo.rat
+     *
+     * @param selected_rat pointer to variable that can hold the value for selected_rat
+     * @param preferred_rat pointer to variable that can hold the value for preferred_rat
+     * @param second_preferred_rat pointer to variable that can hold the value for second_preferred_rat
+     *
+     * Note: NOT_USED will be returned in the variables if dual or tri modes are not enabled.
+     *
+     * @return        true if successful, otherwise false.
+     */
+    bool get_modem_rat(RAT *selected_rat, RAT *preferred_rat, RAT *second_preferred_rat);
+
+    /** reboot the modem using AT+CFUN=15.
+     *
+     * @return        true if successful, otherwise false.
+     */
+    bool reboot_modem();
 protected:
 
     #define OUTPUT_ENTER_KEY  "\r"