Skip to content

Modificando la librería GPS de Libelium (original de D.Cuartielles)

Por cuestiones de limitaciones de memoria, ya que el arduino Duemilanove con el ATmega168 sólo posee 1KB de memoria RAM, ha sido necesario modificar la librería GPS , editando los ficheros LB_GPS.h y LB_GPS.cpp.
El array arguments consumía demasiada memoria (252 bytes) tras haberle aumentado el tamaño en la anterior modificación, y se ha sustituido por char* arguments[21] , que consume 42 bytes.

Por supuesto, esto tiene implicaciones. La función LB_GPS::GPSStringExplode(char*, char); ahora modifica la cadena de entrada para que cada elemento de char* arguments[21] apunte a diferentes posiciones dentro de dicha cadena de entrada. En la cadena de entrada el carácter utilizado como separador es sustituido por el byte 0×00.

A la larga cabe la posibilidad que haya que cambiar la definición #define GPS_BUFFER_SIZE 127 por un valor menor, como 105. En principio debería ser suficiente un valor de 81 (según el manual del firmware ningún mensaje debería superar ese tamaño), pero desgraciadamente el comando $PSTMINFOREAD devuelve un mensaje de, como mínimo, 103 bytes.

Se puede descargar la versión en el post de software.

Post a Comment

Your email is never published nor shared. Required fields are marked *