This class provides an API to communicate with a u-blox GNSS chip. The files here were originally part of the C027_Support library (https://developer.mbed.org/teams/ublox/code/C027_Support/ at revision 138:dafbbf31bf76) but have been separated out, primarily for use on the u-blox C030 board where the cellular interace portion of the C027_Support library will instead be provided through the new mbed Cellular API.

Dependents:   example-ublox-at-cellular-interface-ext example-low-power-sleep example-C030-out-of-box-demo example-C030-out-of-box-demo ... more

Committer:
wajahat.abbas@u-blox.com
Date:
Mon Jul 29 14:24:22 2019 +0500
Revision:
34:d6a65d4c902a
Parent:
33:75163fa7e453
Fixed build error on generic applications

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Bilal Qamar 12:a04f7eeece23 1
Bilal Qamar 12:a04f7eeece23 2 #include "gnss.h"
Bilal Qamar 12:a04f7eeece23 3
Bilal Qamar 12:a04f7eeece23 4 #define UBX_FRAME_SIZE 8
Bilal Qamar 12:a04f7eeece23 5 #ifdef __cplusplus
Bilal Qamar 12:a04f7eeece23 6 extern "C" {
Bilal Qamar 12:a04f7eeece23 7 #endif
Bilal Qamar 12:a04f7eeece23 8
Bilal Qamar 12:a04f7eeece23 9 /** Enums
Bilal Qamar 12:a04f7eeece23 10 */
fahimalavi 33:75163fa7e453 11 enum Command {
fahimalavi 33:75163fa7e453 12 POWER_ON,
fahimalavi 33:75163fa7e453 13 POWER_OFF,
fahimalavi 33:75163fa7e453 14 MON_VER,
fahimalavi 33:75163fa7e453 15 ENABLE_UBX,
fahimalavi 33:75163fa7e453 16 RESTART, // mbed conflict with RESET
fahimalavi 33:75163fa7e453 17 CUSTOMER,
fahimalavi 33:75163fa7e453 18 AVAILABLE_CONFIG
fahimalavi 33:75163fa7e453 19 };
fahimalavi 33:75163fa7e453 20 /** The reset modes
fahimalavi 33:75163fa7e453 21 */
fahimalavi 33:75163fa7e453 22 enum Start {
fahimalavi 33:75163fa7e453 23 HOT,
fahimalavi 33:75163fa7e453 24 COLD,
fahimalavi 33:75163fa7e453 25 WARM,
fahimalavi 33:75163fa7e453 26 MAX_MODE
fahimalavi 33:75163fa7e453 27 };
Bilal Qamar 12:a04f7eeece23 28
fahimalavi 33:75163fa7e453 29 /** The operation modes
fahimalavi 33:75163fa7e453 30 */
fahimalavi 33:75163fa7e453 31 enum Powermodes {
fahim.alavi@u-blox.com 16:cb9861f0f4d8 32
fahimalavi 33:75163fa7e453 33 CONSERVATIVE_CONTINOUS,
fahimalavi 33:75163fa7e453 34 AGGRESSIVE_CONTINUOS,
fahimalavi 33:75163fa7e453 35 SEMI_CONTINOUS,
fahimalavi 33:75163fa7e453 36 FULL_POWER,
fahimalavi 33:75163fa7e453 37 FULL_POWER_BLOCK_LEVEL,
fahimalavi 33:75163fa7e453 38 FULL_POWER_BUILDING_LEVEL,
fahimalavi 33:75163fa7e453 39 AVAILABLE_OPERATION
fahimalavi 33:75163fa7e453 40 };
fahim.alavi@u-blox.com 16:cb9861f0f4d8 41
Bilal Qamar 12:a04f7eeece23 42
fahimalavi 33:75163fa7e453 43 class GnssOperations : public GnssSerial {
Bilal Qamar 12:a04f7eeece23 44
fahimalavi 33:75163fa7e453 45 //GnssSerial constructor can be called here to configure different baud rate
fahimalavi 33:75163fa7e453 46 //Constructor not required at the moment
fahimalavi 33:75163fa7e453 47 //GnssOperations();
Bilal Qamar 12:a04f7eeece23 48
Bilal Qamar 12:a04f7eeece23 49 public:
Bilal Qamar 12:a04f7eeece23 50
fahimalavi 33:75163fa7e453 51 /** Enable GNSS receiver UBX-NAV-PVT messages
fahimalavi 33:75163fa7e453 52 * Navigation Position Velocity Time Solution
fahimalavi 33:75163fa7e453 53 * @param void
fahimalavi 33:75163fa7e453 54 * @return int 1: Successful
fahimalavi 33:75163fa7e453 55 * 0: Failure
fahimalavi 33:75163fa7e453 56 */
fahimalavi 33:75163fa7e453 57 int enable_ubx_nav_pvt();
bqam 23:c462bbec7d00 58
fahimalavi 33:75163fa7e453 59 /** Enable GNSS receiver UBX-STATUS messages
fahimalavi 33:75163fa7e453 60 * Receiver Navigation Status
fahimalavi 33:75163fa7e453 61 * @param void
fahimalavi 33:75163fa7e453 62 * @return int 1: Successful
fahimalavi 33:75163fa7e453 63 * 0: Failure
fahimalavi 33:75163fa7e453 64 */
fahimalavi 33:75163fa7e453 65 int enable_ubx_nav_status();
bqam 23:c462bbec7d00 66
fahimalavi 33:75163fa7e453 67 /** Enable GNSS receiver UBX-NAV-SAT messages
fahimalavi 33:75163fa7e453 68 * Satellite Information
fahimalavi 33:75163fa7e453 69 * @param void
fahimalavi 33:75163fa7e453 70 * @return int 1: Successful
fahimalavi 33:75163fa7e453 71 * 0: Failure
fahimalavi 33:75163fa7e453 72 */
fahimalavi 33:75163fa7e453 73 int enable_ubx_nav_sat();
bqam 23:c462bbec7d00 74
fahimalavi 33:75163fa7e453 75 /** Enable GNSS receiver UBX-NAV-SOL messages
fahimalavi 33:75163fa7e453 76 * Navigation Solution Information
fahimalavi 33:75163fa7e453 77 * @param void
fahimalavi 33:75163fa7e453 78 * @return int 1: Successful
fahimalavi 33:75163fa7e453 79 * 0: Failure
fahimalavi 33:75163fa7e453 80 */
fahimalavi 33:75163fa7e453 81 int enable_ubx_nav_sol();
bqam 23:c462bbec7d00 82
fahimalavi 33:75163fa7e453 83 /** Disable GNSS receiver UBX-NAV-PVT messages
fahimalavi 33:75163fa7e453 84 * @param void
fahimalavi 33:75163fa7e453 85 * @return int 1: Successful
fahimalavi 33:75163fa7e453 86 * 0: Failure
fahimalavi 33:75163fa7e453 87 */
fahimalavi 33:75163fa7e453 88 int disable_ubx_nav_pvt();
bqam 23:c462bbec7d00 89
fahimalavi 33:75163fa7e453 90 /** Enable GNSS receiver UBX-NAV5 messages
fahimalavi 33:75163fa7e453 91 * Navigation Engine Settings
fahimalavi 33:75163fa7e453 92 * @param uint acc Defines positioning accuracy
fahimalavi 33:75163fa7e453 93 * @return int 1: Successful
fahimalavi 33:75163fa7e453 94 * 0: Failure
fahimalavi 33:75163fa7e453 95 */
fahimalavi 33:75163fa7e453 96 int enable_ubx_nav5(unsigned int acc);
bqam 23:c462bbec7d00 97
fahim.alavi@u-blox.com 31:9a1ce433f062 98 /** Enable GNSS receiver UBX-NAVX5 messages
fahim.alavi@u-blox.com 31:9a1ce433f062 99 * Navigation Engine Settings
fahim.alavi@u-blox.com 31:9a1ce433f062 100 * @return int 1: Successful
fahim.alavi@u-blox.com 31:9a1ce433f062 101 * 0: Failure
fahim.alavi@u-blox.com 31:9a1ce433f062 102 */
fahim.alavi@u-blox.com 31:9a1ce433f062 103 int enable_ubx_navx5();
fahim.alavi@u-blox.com 31:9a1ce433f062 104
fahimalavi 33:75163fa7e453 105 /** Enable GNSS receiver UBX-CFG-ODO messages
fahimalavi 33:75163fa7e453 106 * Odometer, Low-speed COG Engine Settings
fahimalavi 33:75163fa7e453 107 * @param void
fahimalavi 33:75163fa7e453 108 * @return int 1: Successful
fahimalavi 33:75163fa7e453 109 * 0: Failure
fahimalavi 33:75163fa7e453 110 */
fahimalavi 33:75163fa7e453 111 int enable_ubx_odo();
bqam 23:c462bbec7d00 112
fahimalavi 33:75163fa7e453 113 /** Disable GNSS receiver UBX-CFG-ODO messages
fahimalavi 33:75163fa7e453 114 * @param void
fahimalavi 33:75163fa7e453 115 * @return int 1: Successful
fahimalavi 33:75163fa7e453 116 * 0: Failure
fahimalavi 33:75163fa7e453 117 */
fahimalavi 33:75163fa7e453 118 int disable_ubx_odo();
bqam 23:c462bbec7d00 119
fahimalavi 33:75163fa7e453 120 /** Enable GNSS receiver UBX-NAV-ODO messages
fahimalavi 33:75163fa7e453 121 * Odometer, Low-speed COG Engine Settings
fahimalavi 33:75163fa7e453 122 * @param void
fahimalavi 33:75163fa7e453 123 * @return int 1: Successful
fahimalavi 33:75163fa7e453 124 * 0: Failure
fahimalavi 33:75163fa7e453 125 */
fahimalavi 33:75163fa7e453 126 int enable_ubx_nav_odo();
bqam 23:c462bbec7d00 127
fahimalavi 33:75163fa7e453 128 /** Disable GNSS receiver UBX-NAV-ODO messages
fahimalavi 33:75163fa7e453 129 * Odometer, Low-speed COG Engine Settings
fahimalavi 33:75163fa7e453 130 * @param void
fahimalavi 33:75163fa7e453 131 * @return int 1: Successful
fahimalavi 33:75163fa7e453 132 * 0: Failure
fahimalavi 33:75163fa7e453 133 */
fahimalavi 33:75163fa7e453 134 int disable_ubx_nav_odo();
bqam 23:c462bbec7d00 135
fahimalavi 33:75163fa7e453 136 /** Enable GNSS receiver UBX-LOG-BATCH messages
fahimalavi 33:75163fa7e453 137 * Batched data
fahimalavi 33:75163fa7e453 138 * @param void
fahimalavi 33:75163fa7e453 139 * @return int 1: Successful
fahimalavi 33:75163fa7e453 140 * 0: Failure
fahimalavi 33:75163fa7e453 141 */
fahimalavi 33:75163fa7e453 142 int enable_ubx_batch_feature();
bqam 23:c462bbec7d00 143
fahimalavi 33:75163fa7e453 144 /** Disable GNSS receiver UBX-LOG-BATCH messages
fahimalavi 33:75163fa7e453 145 * Batched data
fahimalavi 33:75163fa7e453 146 * @param void
fahimalavi 33:75163fa7e453 147 * @return int 1: Successful
fahimalavi 33:75163fa7e453 148 * 0: Failure
fahimalavi 33:75163fa7e453 149 */
fahimalavi 33:75163fa7e453 150 int disable_ubx_batch_feature();
bqam 23:c462bbec7d00 151
fahimalavi 33:75163fa7e453 152 /** Configure GNSS receiver batching feature
fahimalavi 33:75163fa7e453 153 * Get/Set data batching configuration
fahimalavi 33:75163fa7e453 154 * @param tUBX_CFG_BATCH
fahimalavi 33:75163fa7e453 155 * @return int 1: Successful
fahimalavi 33:75163fa7e453 156 * 0: Failure
fahimalavi 33:75163fa7e453 157 */
fahimalavi 33:75163fa7e453 158 int cfg_batch_feature(tUBX_CFG_BATCH *obj);
bqam 23:c462bbec7d00 159
fahimalavi 33:75163fa7e453 160 /** Configure GNSS receiver power mode
fahimalavi 33:75163fa7e453 161 * Power mode setup
fahimalavi 33:75163fa7e453 162 * @param Powermodes SEMI_CONTINOUS
fahimalavi 33:75163fa7e453 163 * AGGRESSIVE_CONTINUOS
fahimalavi 33:75163fa7e453 164 * CONSERVATIVE_CONTINOUS
fahimalavi 33:75163fa7e453 165 * FULL_POWER
fahimalavi 33:75163fa7e453 166 * FULL_POWER_BLOCK_LEVEL
fahimalavi 33:75163fa7e453 167 * minimumAcqTime boolean
fahimalavi 33:75163fa7e453 168 *
fahimalavi 33:75163fa7e453 169 * @return int 1: Successful
fahimalavi 33:75163fa7e453 170 * 0: Failure
fahimalavi 33:75163fa7e453 171 */
fahimalavi 33:75163fa7e453 172 int cfg_power_mode(Powermodes power_mode, bool minimumAcqTime);
bqam 23:c462bbec7d00 173
fahimalavi 33:75163fa7e453 174 /** Method to poll the GNSS configuration
fahimalavi 33:75163fa7e453 175 * @param void
fahimalavi 33:75163fa7e453 176 * @return bool true: Successful
fahimalavi 33:75163fa7e453 177 * false: Failure
fahimalavi 33:75163fa7e453 178 */
fahimalavi 33:75163fa7e453 179 bool verify_gnss_mode();
bqam 23:c462bbec7d00 180
fahimalavi 33:75163fa7e453 181 /** Configure GNSS startup mode
fahimalavi 33:75163fa7e453 182 * Power mode setup
fahimalavi 33:75163fa7e453 183 * @param start_mode 0: Hot Start
fahimalavi 33:75163fa7e453 184 * 1: Warm Start
fahimalavi 33:75163fa7e453 185 * 2: Cold Start
fahimalavi 33:75163fa7e453 186 *
fahimalavi 33:75163fa7e453 187 * @return int 1: Successful
fahimalavi 33:75163fa7e453 188 * 0: Failure
fahimalavi 33:75163fa7e453 189 */
fahimalavi 33:75163fa7e453 190 int start_mode(int start_mode);
Bilal Qamar 12:a04f7eeece23 191
fahimalavi 33:75163fa7e453 192 /** Send char to GNSS receiver
fahimalavi 33:75163fa7e453 193 * @param char
fahimalavi 33:75163fa7e453 194 * @return void
fahimalavi 33:75163fa7e453 195 */
fahimalavi 33:75163fa7e453 196 void send_to_gnss(char);
bqam 23:c462bbec7d00 197
fahimalavi 33:75163fa7e453 198 /** Power On GNSS receiver
fahimalavi 33:75163fa7e453 199 *
fahimalavi 33:75163fa7e453 200 * @return void
fahimalavi 33:75163fa7e453 201 */
fahimalavi 33:75163fa7e453 202 void power_on_gnss();
bqam 14:4b22bd505b93 203
Bilal Qamar 12:a04f7eeece23 204 };
Bilal Qamar 12:a04f7eeece23 205 #ifdef __cplusplus
Bilal Qamar 12:a04f7eeece23 206 }
Bilal Qamar 12:a04f7eeece23 207 #endif