Salut Antoine,

Désolé de la réponse un peu tardive, mais comme tu t'en
doutes peut être, on est un peu sur notre robot 24/24, ce
qui laisse assez peu de temps pour répondre aux mails ;)

Effectivement, il y a de quoi faire une ligne de commande
-- même un peu plus que basique ;) -- dans aversive. En
gros il y a plusieurs modules impliqués:

- vt100: c'est un parseur vt100 comme son nom l'indique,
  c'est à dire qu'il est capable de reconnaître les
  caractères de contrôles, commes les flèches. Il permet
  aussi d'envoyer des commandes spécifiques au terminal,
  du style effacer la ligne ou la page.

- rdline: un peu l'équivalent de la readline de gnu avec
  moins de fonctionnalités. Ce module utilise vt100 et
  permet en gros de faire l'édition d'un buffer de texte
  sur une ligne, en gérant un curseur qu'on peut déplacer,
  et tous les raccourcis comme CTRL-a pour le retour à
  la ligne, ... Le module permet de mémoriser un historique
  des commandes.

- parse: c'est ce qui permet, à partir d'une liste de
  commandes statiques stockées dans la mémoire programme
  du uC, de savoir si un buffer renvoyé par rdline
  correspond ou non à une commande utilisateur. Si c'est
  le cas, il va remplir une structure contenant les
  arguments préformatés et appeler la fonction correspondant
  à la commande. Il gère aussi à la demande de rdline une
  complétion avec la touche 'TAB' ou '?'. Le mieux est
  de regarder le code d'exemple du module, ainsi que le
  code de microb 2009.

Si tu as des questions spécifiques, n'hésite pas.

Olivier



Antoine albertelli wrote:
> Hello,
> J'ai un peu regardé le code source du robot de Microb, et j'ai vu que
> vous avez fait une ligne de commande basique pour votre robot, et
> j'essaye de faire la même chose pour un projet perso, mais je n'ai pas
> compris comment le code fonctionne. J'ai plus ou moins compris comment
> marchait la définition de commande, mais pour le reste, un coup de main
> serait le bienvenu.
> 
> A+
> Antoine
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Avr-list mailing list
> Avr-list@droids-corp.org
> CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
> WIKI : http://wiki.droids-corp.org/index.php/Aversive
> DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
> BUGZILLA : http://bugzilla.droids-corp.org
> COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog


_______________________________________________
Avr-list mailing list
Avr-list@droids-corp.org
CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
WIKI : http://wiki.droids-corp.org/index.php/Aversive
DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
BUGZILLA : http://bugzilla.droids-corp.org
COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog

Répondre à