SlashDevin / NeoGPS

NMEA and ublox GPS parser for Arduino, configurable to use as few as 10 bytes of RAM
GNU General Public License v3.0
702 stars 194 forks source link

LAST_SENTENCE_IN_INTERVAL is not properly defined in NMEAGPS_cfg.h although I think it is? #158

Open tmargot opened 2 years ago

tmargot commented 2 years ago

Error encountered whilst trying to configure/run ubloxRate.ino,. I ran the NMEAorder.ino and determined that GLL was the last sentence, but I keep getting an error running ubloxRate.ino

Error in console:

21:52:13.859 -> LAST_SENTENCE_IN_INTERVAL is not properly defined in NMEAGPS_cfg.h!
21:52:13.905 ->    See Prerequisite 4 above

I did print out the expected/current values:

21:52:13.766 -> Current Last Sentence = 255
21:52:13.812 -> Last Sentence Configured = 6

My NMEAGPS_cfg.h:

//#define LAST_SENTENCE_IN_INTERVAL NMEAGPS::NMEA_RMC
#define LAST_SENTENCE_IN_INTERVAL NMEAGPS::NMEA_GLL

Not quite sure what the following means?

//     4) LAST_SENTENCE_IN_INTERVAL is defined to be
//          the following in NMEAGPS_cfg.h:
//
//          #include <stdint.h>
//          extern uint8_t LastSentenceInInterval; // a variable!
//          #define LAST_SENTENCE_IN_INTERVAL \
//                      ((NMEAGPS::nmea_msg_t) LastSentenceInInterval)
//
//        This is a replacement for the typical
//
//          #define LAST_SENTENCE_IN_INTERVAL NMEAGPS::NMEA_GLL
//
//        This allows the sketch to choose the last sentence *at run time*, not
//        compile time.  This is necessary because this sketch can send 
//        configuration commands that change which sentences are enabled.
//        The storage for the "externed" variable is below.
tmargot commented 2 years ago

Ok, reread the instructions and understood that I had to actually replace the single line with multiple lines specified in NMEAGPS_cfg.h

I am now getting an error on compile although it still continues to compile:


In file included from E:\Work\Personal\Arduino Sketchbook\libraries\NeoGPS\src/ublox/ubxGPS.h:26:0,
                 from E:\Work\Personal\GPS Laptimer\Arduino\tests\NeoGPS\ubloxRate\ubloxRate.ino:2:
E:\Work\Personal\Arduino Sketchbook\libraries\NeoGPS\src/ublox/ubxmsg.h:177:12: note: offset of packed bit-field 'ublox::cfg_rate_t::time_ref' has changed in GCC 4.4
     struct cfg_rate_t : msg_t {

When uploaded to ESP32, I get the following in the console, any ideas?

10:56:09.712 -> HD⸮⸮⸮⸮ubloxRate.INO: started
10:56:09.853 -> Looking for GPS device on HardwareSerial
10:56:09.900 -> Enter '?' for help.
10:56:09.900 -> Status,UTC Date/Time,Lat,Lon,Hdg,Spd,Alt,Sats,Rx ok,Rx err,Rx chars,
10:56:09.993 -> Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
10:56:10.085 -> Memory dump at 0x400d2870: 5ec5f65d d5e544ed 6d46e6fd
10:56:10.131 -> Core 1 register dump:
10:56:10.131 -> PC      : 0x400d2874  PS      : 0x00060330  A0      : 0x800d2fdc  A1      : 0x3ffb1f60  
10:56:10.223 -> A2      : 0x3ffc0008  A3      : 0x3ffb0060  A4      : 0x00000020  A5      : 0x80000020  
10:56:10.314 -> A6      : 0x00000000  A7      : 0x00000000  A8      : 0x800d0ef8  A9      : 0x3ffb1f40  
10:56:10.450 -> A10     : 0x3ffc0008  A11     : 0x0000000a  A12     : 0x0800001c  A13     : 0x00000009  
10:56:10.540 -> A14     : 0x00000009  A15     : 0x00000000  SAR     : 0x00000016  EXCCAUSE: 0x00000000  
10:56:10.633 -> EXCVADDR: 0x00000000  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xfffffffa  
10:56:10.725 -> 
10:56:10.725 -> ELF file SHA256: 0000000000000000
10:56:10.773 -> 
10:56:10.773 -> Backtrace: 0x400d2874:0x3ffb1f60 0x400d2fd9:0x3ffb1fb0 0x400860dd:0x3ffb1fd0
10:56:10.819 -> 
10:56:10.819 -> Rebooting...