lriot  2.1.0.0
lr1110_modem_gnss_types.h
Go to the documentation of this file.
1 
32 #ifndef LR1110_MODEM_GNSS_TYPES_H
33 #define LR1110_MODEM_GNSS_TYPES_H
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 /*
40  * -----------------------------------------------------------------------------
41  * --- DEPENDENCIES ------------------------------------------------------------
42  */
43 
44 #include <stdbool.h>
45 #include <stdint.h>
46 
47 /*
48  * -----------------------------------------------------------------------------
49  * --- PUBLIC MACROS -----------------------------------------------------------
50  */
51 
52 /*
53  * -----------------------------------------------------------------------------
54  * --- PUBLIC CONSTANTS --------------------------------------------------------
55  */
56 
60 #define LR1110_MODEM_GNSS_FULL_UPDATE_N_ALMANACS ( 128 )
61 
65 #define LR1110_MODEM_GNSS_SINGLE_ALMANAC_READ_SIZE ( 22 )
66 
70 #define LR1110_MODEM_GNSS_SINGLE_ALMANAC_WRITE_SIZE ( 20 )
71 
75 #define LR1110_MODEM_GNSS_FULL_ALMANAC_WRITE_BUFFER_SIZE \
76  ( ( LR1110_MODEM_GNSS_FULL_UPDATE_N_ALMANACS * LR1110_MODEM_GNSS_SINGLE_ALMANAC_WRITE_SIZE ) + 20 )
77 
81 #define LR1110_MODEM_GNSS_SCAN_RESULT_DESTINATION_INDEX ( 0 )
82 
87 #define LR1110_MODEM_GNSS_SCAN_RESULT_EVENT_TYPE_INDEX ( 1 )
88 
89 /*
90  * -----------------------------------------------------------------------------
91  * --- PUBLIC TYPES ------------------------------------------------------------
92  */
93 
100 typedef enum
101 {
112 
116 typedef enum
117 {
121 
125 typedef enum
126 {
130 
135 {
139 };
140 
144 typedef enum
145 {
149 
153 typedef enum
154 {
159 
163 typedef enum
164 {
170 
174 typedef enum
175 {
181  0x04
183 
188 
195 
202 
207 
212 
216 typedef struct
217 {
218  float latitude;
219  float longitude;
221 
225 typedef struct
226 {
228  int8_t cnr;
230 
234 typedef struct
235 {
236  uint32_t radio_ms;
237  uint32_t computation_ms;
239 
243 typedef struct
244 {
245  uint8_t gnss_firmware;
246  uint8_t gnss_almanac;
248 
252 typedef struct
253 {
256  uint8_t error_code;
261 
262 #ifdef __cplusplus
263 }
264 #endif
265 
266 #endif // LR1110_MODEM_GNSS_TYPES_H
lr1110_modem_gnss_almanac_full_update_bytestream_t
uint8_t lr1110_modem_gnss_almanac_full_update_bytestream_t[LR1110_MODEM_GNSS_FULL_ALMANAC_WRITE_BUFFER_SIZE]
Buffer that holds data for all almanacs full update.
Definition: lr1110_modem_gnss_types.h:206
lr1110_modem_gnss_context_status_error_code_t
lr1110_modem_gnss_context_status_error_code_t
Context status error code.
Definition: lr1110_modem_gnss_types.h:175
lr1110_modem_gnss_frequency_search_space_t
lr1110_modem_gnss_frequency_search_space_t
Frequency search space around the Doppler frequency.
Definition: lr1110_modem_gnss_types.h:164
lr1110_modem_gnss_detected_satellite_t
Detected satellite structure.
Definition: lr1110_modem_gnss_types.h:226
lr1110_modem_gnss_timings_t::radio_ms
uint32_t radio_ms
Duration with radio on.
Definition: lr1110_modem_gnss_types.h:236
lr1110_modem_gnss_context_t
Status message struct in case of operation code = 0x18 (Status Message)
Definition: lr1110_modem_gnss_types.h:253
LR1110_MODEM_GNSS_OPTION_BEST_EFFORT
@ LR1110_MODEM_GNSS_OPTION_BEST_EFFORT
Add additional search if not all satellites are found.
Definition: lr1110_modem_gnss_types.h:128
LR1110_MODEM_GNSS_CONTEXT_STATUS_NO_ERROR
@ LR1110_MODEM_GNSS_CONTEXT_STATUS_NO_ERROR
No error.
Definition: lr1110_modem_gnss_types.h:176
lr1110_modem_gnss_result_mask_e
lr1110_modem_gnss_result_mask_e
bit mask indicating which information is added in the output payload
Definition: lr1110_modem_gnss_types.h:135
lr1110_modem_gnss_context_t::almanac_update_bit_mask
uint8_t almanac_update_bit_mask
Almanac update bit mask.
Definition: lr1110_modem_gnss_types.h:258
lr1110_modem_gnss_solver_assistance_position_t::latitude
float latitude
Latitude 12 bits (latitude in degree * 2048/90) with resolution 0.044°
Definition: lr1110_modem_gnss_types.h:218
LR1110_MODEM_GNSS_SCAN_DONE_ALMANAC_UPDATE_FAILS_FLASH_INTEGRITY_ERROR
@ LR1110_MODEM_GNSS_SCAN_DONE_ALMANAC_UPDATE_FAILS_FLASH_INTEGRITY_ERROR
Definition: lr1110_modem_gnss_types.h:108
lr1110_modem_gnss_detected_satellite_t::satellite_id
lr1110_modem_gnss_satellite_id_t satellite_id
Satellite ID.
Definition: lr1110_modem_gnss_types.h:227
lr1110_modem_gnss_version_t::gnss_almanac
uint8_t gnss_almanac
Version of the almanac format.
Definition: lr1110_modem_gnss_types.h:246
LR1110_MODEM_GNSS_SCAN_DONE_PROCESS_OK
@ LR1110_MODEM_GNSS_SCAN_DONE_PROCESS_OK
Definition: lr1110_modem_gnss_types.h:102
LR1110_MODEM_GNSS_SINGLE_ALMANAC_WRITE_SIZE
#define LR1110_MODEM_GNSS_SINGLE_ALMANAC_WRITE_SIZE
Size of the almanac of a single satellite when writing.
Definition: lr1110_modem_gnss_types.h:70
lr1110_modem_gnss_scan_done_event_t
lr1110_modem_gnss_scan_done_event_t
GNSS Event value for Host destinated message.
Definition: lr1110_modem_gnss_types.h:101
LR1110_MODEM_GNSS_CONTEXT_STATUS_ALMANAC_TOO_OLD
@ LR1110_MODEM_GNSS_CONTEXT_STATUS_ALMANAC_TOO_OLD
Almanac too old.
Definition: lr1110_modem_gnss_types.h:177
LR1110_MODEM_GNSS_SCAN_DONE_NO_SATELLITE_DETECTED
@ LR1110_MODEM_GNSS_SCAN_DONE_NO_SATELLITE_DETECTED
Definition: lr1110_modem_gnss_types.h:105
lr1110_modem_gnss_solver_assistance_position_t
Assistance position.
Definition: lr1110_modem_gnss_types.h:217
LR1110_MODEM_GNSS_DOPPLER_MASK
@ LR1110_MODEM_GNSS_DOPPLER_MASK
Definition: lr1110_modem_gnss_types.h:137
LR1110_MODEM_GNSS_BEIDOU_MASK
@ LR1110_MODEM_GNSS_BEIDOU_MASK
Definition: lr1110_modem_gnss_types.h:147
lr1110_modem_gnss_frequency_search_space_mask_t
uint8_t lr1110_modem_gnss_frequency_search_space_mask_t
Bit mask of frequency search space configurations.
Definition: lr1110_modem_gnss_types.h:201
LR1110_MODEM_GNSS_FREQUENCY_SEARCH_SPACE_1_KHZ
@ LR1110_MODEM_GNSS_FREQUENCY_SEARCH_SPACE_1_KHZ
Definition: lr1110_modem_gnss_types.h:167
LR1110_MODEM_GNSS_FREQUENCY_SEARCH_SPACE_2_KHZ
@ LR1110_MODEM_GNSS_FREQUENCY_SEARCH_SPACE_2_KHZ
Definition: lr1110_modem_gnss_types.h:168
lr1110_modem_gnss_almanac_constellation_id_t
lr1110_modem_gnss_almanac_constellation_id_t
Almanac Constellation identifiers.
Definition: lr1110_modem_gnss_types.h:154
LR1110_MODEM_GNSS_ALMANAC_CONSTELLATION_UNDEFINED
@ LR1110_MODEM_GNSS_ALMANAC_CONSTELLATION_UNDEFINED
Definition: lr1110_modem_gnss_types.h:157
lr1110_modem_gnss_almanac_one_chunk_bytestream_t
uint8_t lr1110_modem_gnss_almanac_one_chunk_bytestream_t[LR1110_MODEM_GNSS_SINGLE_ALMANAC_WRITE_SIZE]
Buffer that hold one chunk of almanac for update.
Definition: lr1110_modem_gnss_types.h:211
LR1110_MODEM_GNSS_SCAN_DONE_NO_TIME
@ LR1110_MODEM_GNSS_SCAN_DONE_NO_TIME
Definition: lr1110_modem_gnss_types.h:104
LR1110_MODEM_GNSS_SCAN_DONE_ALMANAC_VERSION_NOT_SUPPORTED
@ LR1110_MODEM_GNSS_SCAN_DONE_ALMANAC_VERSION_NOT_SUPPORTED
Definition: lr1110_modem_gnss_types.h:110
lr1110_modem_gnss_detected_satellite_t::cnr
int8_t cnr
Carrier-to-noise ration (C/N) in dB.
Definition: lr1110_modem_gnss_types.h:228
lr1110_modem_gnss_context_t::global_almanac_crc
uint32_t global_almanac_crc
Definition: lr1110_modem_gnss_types.h:255
lr1110_modem_gnss_satellite_id_t
uint8_t lr1110_modem_gnss_satellite_id_t
Satellite ID type.
Definition: lr1110_modem_gnss_types.h:187
LR1110_MODEM_GNSS_GPS_MASK
@ LR1110_MODEM_GNSS_GPS_MASK
Definition: lr1110_modem_gnss_types.h:146
lr1110_modem_gnss_context_t::gnss_firmware_version
uint8_t gnss_firmware_version
GNSS firmware version.
Definition: lr1110_modem_gnss_types.h:254
LR1110_MODEM_GNSS_FULL_ALMANAC_WRITE_BUFFER_SIZE
#define LR1110_MODEM_GNSS_FULL_ALMANAC_WRITE_BUFFER_SIZE
Size of the almanac for all satellites when writing.
Definition: lr1110_modem_gnss_types.h:75
LR1110_MODEM_GNSS_ALMANAC_CONSTELLATION_GPS
@ LR1110_MODEM_GNSS_ALMANAC_CONSTELLATION_GPS
Definition: lr1110_modem_gnss_types.h:155
lr1110_modem_gnss_context_t::frequency_search_space
uint8_t frequency_search_space
Frequency search space.
Definition: lr1110_modem_gnss_types.h:259
LR1110_MODEM_GNSS_DESTINATION_SOLVER
@ LR1110_MODEM_GNSS_DESTINATION_SOLVER
GNSS Solver.
Definition: lr1110_modem_gnss_types.h:119
LR1110_MODEM_GNSS_DESTINATION_HOST
@ LR1110_MODEM_GNSS_DESTINATION_HOST
Host MCU.
Definition: lr1110_modem_gnss_types.h:118
LR1110_MODEM_GNSS_FREQUENCY_SEARCH_SPACE_250_HZ
@ LR1110_MODEM_GNSS_FREQUENCY_SEARCH_SPACE_250_HZ
Definition: lr1110_modem_gnss_types.h:165
lr1110_modem_gnss_timings_t::computation_ms
uint32_t computation_ms
Duration of computation.
Definition: lr1110_modem_gnss_types.h:237
LR1110_MODEM_GNSS_CONTEXT_STATUS_LAST_ALMANAC_UPDATE_CRC_MISMATCH
@ LR1110_MODEM_GNSS_CONTEXT_STATUS_LAST_ALMANAC_UPDATE_CRC_MISMATCH
Last almanac update CRC mismatch.
Definition: lr1110_modem_gnss_types.h:178
LR1110_MODEM_GNSS_ALMANAC_CONSTELLATION_BEIDOU
@ LR1110_MODEM_GNSS_ALMANAC_CONSTELLATION_BEIDOU
Definition: lr1110_modem_gnss_types.h:156
lr1110_modem_gnss_version_t::gnss_firmware
uint8_t gnss_firmware
Version of the firmware.
Definition: lr1110_modem_gnss_types.h:245
LR1110_MODEM_GNSS_OPTION_DEFAULT
@ LR1110_MODEM_GNSS_OPTION_DEFAULT
Search all requested satellites or fail.
Definition: lr1110_modem_gnss_types.h:127
LR1110_MODEM_GNSS_SCAN_DONE_IQ_FAILS
@ LR1110_MODEM_GNSS_SCAN_DONE_IQ_FAILS
Definition: lr1110_modem_gnss_types.h:103
LR1110_MODEM_GNSS_SCAN_DONE_ALMANAC_TOO_OLD
@ LR1110_MODEM_GNSS_SCAN_DONE_ALMANAC_TOO_OLD
Definition: lr1110_modem_gnss_types.h:106
LR1110_MODEM_GNSS_CONTEXT_STATUS_LAST_ALMANAC_UPDATE_TOO_OLD
@ LR1110_MODEM_GNSS_CONTEXT_STATUS_LAST_ALMANAC_UPDATE_TOO_OLD
Last almanac update time difference more than 1 month.
Definition: lr1110_modem_gnss_types.h:180
LR1110_MODEM_GNSS_SCAN_DONE_GLOBAL_ALMANAC_CRC_ERROR
@ LR1110_MODEM_GNSS_SCAN_DONE_GLOBAL_ALMANAC_CRC_ERROR
Definition: lr1110_modem_gnss_types.h:109
lr1110_modem_gnss_search_mode_t
lr1110_modem_gnss_search_mode_t
Search mode for GNSS scan.
Definition: lr1110_modem_gnss_types.h:126
lr1110_modem_gnss_destination_t
lr1110_modem_gnss_destination_t
GNSS response type indicates the destination: Host MCU or GNSS solver.
Definition: lr1110_modem_gnss_types.h:117
lr1110_modem_gnss_timings_t
GNSS timings of the LR1110 modem.
Definition: lr1110_modem_gnss_types.h:235
LR1110_MODEM_GNSS_FREQUENCY_SEARCH_SPACE_500_HZ
@ LR1110_MODEM_GNSS_FREQUENCY_SEARCH_SPACE_500_HZ
Definition: lr1110_modem_gnss_types.h:166
lr1110_modem_gnss_version_t
Version structure of the LR1110 GNSS firmware.
Definition: lr1110_modem_gnss_types.h:244
lr1110_modem_gnss_constellation_t
lr1110_modem_gnss_constellation_t
Constellation identifiers.
Definition: lr1110_modem_gnss_types.h:145
LR1110_MODEM_GNSS_CONTEXT_STATUS_FLASH_MEMORY_INTEGRITY_ERROR
@ LR1110_MODEM_GNSS_CONTEXT_STATUS_FLASH_MEMORY_INTEGRITY_ERROR
Flash memory integrity error.
Definition: lr1110_modem_gnss_types.h:179
LR1110_MODEM_GNSS_BIT_CHANGE_MASK
@ LR1110_MODEM_GNSS_BIT_CHANGE_MASK
Definition: lr1110_modem_gnss_types.h:138
lr1110_modem_gnss_solver_assistance_position_t::longitude
float longitude
Longitude 12 bits (longitude in degree * 2048/180) with resolution 0.088°
Definition: lr1110_modem_gnss_types.h:219
lr1110_modem_gnss_constellation_mask_t
uint8_t lr1110_modem_gnss_constellation_mask_t
Bit mask of constellation configurations.
Definition: lr1110_modem_gnss_types.h:194
LR1110_MODEM_GNSS_PSEUDO_RANGE_MASK
@ LR1110_MODEM_GNSS_PSEUDO_RANGE_MASK
Definition: lr1110_modem_gnss_types.h:136
LR1110_MODEM_GNSS_SCAN_DONE_ALMANAC_UPDATE_FAILS_CRC_ERROR
@ LR1110_MODEM_GNSS_SCAN_DONE_ALMANAC_UPDATE_FAILS_CRC_ERROR
Definition: lr1110_modem_gnss_types.h:107