Vectores en Arduino

Estoy haciendo un vector de “waypoints” en el Arduino. Cada waypoint es un objeto. El Arduino obviamente necesitará almacenar múltiples waypoints para la navegación del waypoint. Pero en lugar de almacenar estos waypoints en una matriz preprogtwigda estándar, el usuario deberá poder agregar, eliminar puntos de referencia y moverlos. Desafortunadamente, Arduino no ofrece un tipo de vector como biblioteca incorporada.

Actualmente estoy contemplando dos opciones:

  1. En contenedor para objetos como C ++ ‘vector’? , alguien publicó una biblioteca de propósito general. No contiene ninguna eliminación de índice u operaciones de movimiento. Pero contiene algunas estrategias de administración de memoria.

  2. He usado malloc , dealloc, calloc en el pasado. Pero no me gusta esa opción en absoluto, especialmente con las clases. ¿Pero esta es una mejor opción en mi senario?

¿Cuál es un mejor camino para bajar?

El estándar C ++ para Arduino podría ser una opción. Te permite usar el vector STL en Arduino.

Parece que quieres implementar una lista vinculada simple. Una lista vinculada le permite mover objetos (puntos de referencia, en su caso) sin la sobrecarga asociada con vectores C ++.

Aquí hay una implementación en GitHub .

El arduino tiene memoria limitada, por lo que necesita saber cuántos puntos intermedios permitirá. En ese caso, una matriz simple para mantener los punteros de memoria (direcciones) de los puntos de referencia asignados proporcionará la secuencia / orden que necesita. Mantener una ranura de matriz libre como área de trabajo permitirá mover los puntos de referencia (reordenados).

También podría tener una matriz fija de estructuras de puntos de referencia e incluir una variable en la estructura si el waypoint está en uso o no. Al agregar un waypoint, todo lo que tiene que recorrer es recorrer la matriz hasta que encuentre una estructura que no esté en uso.