@@ -118,14 +118,11 @@ bool GPSModel::AddGpsEventRMC(wippersnapper_gps_GPSDateTime datetime,
118
118
uint8_t fix_status, float lat, char *lat_dir,
119
119
float lon, char *lon_dir, float speed,
120
120
float angle) {
121
- // Check if we've reached the maximum number of RMC responses
122
- if (_msg_gps_event.rmc_responses_count >= MAX_COUNT_RMC_GGA)
123
- return false ;
124
-
125
121
// Validate pointers have been provided correctly
126
122
if (!lat_dir || !lon_dir)
127
123
return false ;
128
124
125
+ // Always store at index 0, overwriting any previous response
129
126
wippersnapper_gps_GPSRMCResponse rmc_response;
130
127
rmc_response = wippersnapper_gps_GPSRMCResponse_init_zero;
131
128
rmc_response.has_datetime = true ;
@@ -152,21 +149,16 @@ bool GPSModel::AddGpsEventRMC(wippersnapper_gps_GPSDateTime datetime,
152
149
// Fill course in degrees from true north
153
150
snprintf (rmc_response.angle , sizeof (rmc_response.angle ), " %.1f" , angle);
154
151
155
- _msg_gps_event. rmc_responses [_msg_gps_event. rmc_responses_count ] =
156
- rmc_response;
157
- _msg_gps_event.rmc_responses_count ++ ;
152
+ // Always store at index 0, overwrite any previous response in the FIFO buffer
153
+ _msg_gps_event. rmc_responses [ 0 ] = rmc_response;
154
+ _msg_gps_event.rmc_responses_count = 1 ;
158
155
return true ;
159
156
}
160
157
161
158
bool GPSModel::AddGpsEventGGA (wippersnapper_gps_GPSDateTime datetime,
162
159
uint8_t fix_status, float lat, char *lat_dir,
163
160
float lon, char *lon_dir, uint8_t num_sats,
164
161
float hdop, float alt, float geoid_height) {
165
-
166
- // Check if we've reached the maximum number of RMC responses
167
- if (_msg_gps_event.gga_responses_count >= MAX_COUNT_RMC_GGA)
168
- return false ;
169
-
170
162
// Validate pointers have been provided correctly
171
163
if (!lat_dir || !lon_dir)
172
164
return false ;
@@ -197,8 +189,8 @@ bool GPSModel::AddGpsEventGGA(wippersnapper_gps_GPSDateTime datetime,
197
189
snprintf (gga_response.geoid_height , sizeof (gga_response.geoid_height ), " %.1f" ,
198
190
geoid_height);
199
191
200
- _msg_gps_event. gga_responses [_msg_gps_event. gga_responses_count ] =
201
- gga_response;
202
- _msg_gps_event.gga_responses_count ++ ;
192
+ // Always store at index 0, overwrite any previous response in the FIFO buffer
193
+ _msg_gps_event. gga_responses [ 0 ] = gga_response;
194
+ _msg_gps_event.gga_responses_count = 1 ;
203
195
return true ;
204
196
}
0 commit comments