• Very interesting. When I worked with a ublox 6M moudule, I had irregularities too: sometimes some values in a sentence were missing and lead to errors in conversion to a number. I used the standard Espruino GPS moudule after it was minimally modified to allow to have custom handlers. I did not think of stripping down the output scope in ublox moudule.

    Glancing over the GPS_ext12.js code I wondered about the extra arguments in setTimeout() invocation in start_stop_nmea(), ~ line 110. Can you explain?

    Btw, I like the function/method-creation approach by using the sentence attribute name as the signature and then have a content type addressed detail handling. The not so liked part is the eval()... but the heck: if code can create programmatic code based on declarations, why not go for it! Did you consider to run the function generation in a preprocess step and output the source, and then use that source explicitely?

  • Well, the eval part is doing programmaticaly what i found cumbersome. The real goal is to minimise any computation done in the serial.on loop and still provide any data of interest in a naturally javascript suitable for further computations and efficient data storage. It's still in progress.
    The ublox device can be programmed from its usb interface directly with u-center and saved to its integrated flash memory. This would allow for a no time and no memory used on the espruino.

    As a matter of fact, I prefer to pre-process on launch as much as possible and then delete any no more usefull functions or objects. This reduces the dependancy of this program to predefined gps board behaviour.
    I found elsewhere something like 90 different nmea sentences...........

    About incomplete sentences. from the device, it just drops any outdated sentence even if it is beeing send through the serial link, with no eol, just the $ before the next sentence. I ended with a systematic checksum verification, discarding any unvalid sentence before any further computation.

About

Avatar for allObjects @allObjects started