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
gnss_operations.h@33:75163fa7e453, 2019-05-29 (annotated)
- Committer:
- fahimalavi
- Date:
- Wed May 29 16:45:00 2019 +0500
- Revision:
- 33:75163fa7e453
- Parent:
- 31:9a1ce433f062
Code style corrected
Who changed what in which revision?
User | Revision | Line number | New 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 |