59 votes

Vecteurs dans Arduino

Je fais un vecteur de "waypoints" sur l'Arduino. Chaque point est un objet. L'Arduino sera bien évidemment besoin de stocker plusieurs points de cheminement pour le point de cheminement de navigation. Mais au lieu de stocker ces points de passage, dans un standard préprogrammés tableau, l'utilisateur doit être en mesure d'ajouter, de supprimer les waypoints et les déplacer. Malheureusement, l'Arduino n'offre pas un type de vecteur comme une bibliothèque intégrée.

Je suis actuellement en contemplant deux options:

  1. Dans un Conteneur pour objets comme C++ "vecteur"?, quelqu'un a posté une bibliothèque d'intérêt général. Il ne contient aucun indice de la suppression ou de la circulation des opérations. Mais il contient de la mémoire de stratégies de gestion.

  2. J'ai utilisé la fonction malloc, dealloc, calloc dans le passé. Mais je n'aime pas que l'option du tout, surtout avec des classes. Mais est-ce une meilleure option dans mon senario?

Lequel est le meilleur chemin pour aller vers le bas?

66voto

Sibster Points 1300

C ++ standard pour Arduino pourrait être une option. Il vous permet d'utiliser le vecteur STL dans Arduino.

4voto

august Points 1198

On dirait que vous voudriez implémenter une simple liste chaînée. Une liste chaînée vous permet de déplacer des objets (points de passage, dans votre cas) sans la surcharge associée aux vecteurs C ++.

Voici une implémentation sur GitHub .

3voto

Visual Micro Points 683

L'arduino a une mémoire limitée, vous devez donc savoir combien de points de passage vous autoriserez. Dans ce cas, un simple tableau contenant des pointeurs de mémoire (adresses) des points de route alloués fournira la séquence / l'ordre dont vous avez besoin. Garder un emplacement de matrice libre en tant que zone de travail permettra de déplacer (repositionner) les points de cheminement.

0voto

ohlemacher Points 198

Il existe deux (au moins) STL pour les options Arduino.

Voici l'autre option STL. Celui-ci est un port de l'implémentation SGI. uCLib ++ dit que c'est une version alpha.

Est-ce que quelqu'un a regardé ou utilisé les deux? J'aimerais connaître les préférences des gens.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X