ADDITIONAL SAFETY MEASURE: Queue limited at 30 sentences (configurable at build time).

This commit is contained in:
Kragg Malak
2023-12-17 18:37:20 -07:00
parent a984b2df4a
commit 4d0594b424
2 changed files with 16 additions and 1 deletions

View File

@@ -196,11 +196,25 @@ void GpsInterface::enqueue(MicroNMEA& nmea){
this->notparsed_nmea_sentence = nmea_sentence.c_str();
if(this->queue_enabled_flag){
if(!this->queue) this->new_queue();
if(enqueue){
nmea_sentence_t line = { unparsed, msg_id, nmea_sentence.c_str() };
if(this->queue){
#ifdef GPS_NMEA_MAXQUEUE
if(this->queue->size()>=GPS_NMEA_MAXQUEUE)
#else
if(this->queue->size()>=30)
#endif
this->flush_queue();
}
else
this->new_queue();
this->queue->add(line);
}
else
if(!this->queue)
this->new_queue();
}
else
this->flush_queue();