No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

robot.h 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /**
  2. * \file robot.h
  3. * \author L.Senaneuch
  4. * \version 1.0
  5. * \date 06/06/2017
  6. * \brief Fonction permettant la communication avec le robot.
  7. *
  8. * \details Ce fichier regroupe des fonctions facilitant la communication avec le robot en utilisant le port serie USART
  9. */
  10. #ifndef DUMBERC_SERIAL_H_H
  11. #define DUMBERC_SERIAL_H_H
  12. #include <stdio.h>
  13. #include <unistd.h>
  14. #include <fcntl.h>
  15. #include <termios.h>
  16. #include <string.h>
  17. #include <stdlib.h>
  18. #include "definitions.h"
  19. #define serialPort "/dev/ttyS0"
  20. typedef struct
  21. {
  22. char header[4];
  23. char data[20];
  24. } MessageToRobot;
  25. /**
  26. * \brief Ouvre la communication avec le robot.
  27. * \details Ouvre le serial port passé en paramétre. Par defaut cette fonction ouvre le port ttySO connecté au module xbee.
  28. *
  29. * \param *path chaine de caractère indiquant le path du port serie à ouvrir.
  30. * \return Return -1 si l'ouverture c'est mal passé et 0 si le port est ouvert.
  31. */
  32. int open_communication_robot(const char * path=serialPort);
  33. /**
  34. * \brief Ferme la communication avec le robot.
  35. * \details Ferme le descripteur de fichier du port serie contrôlant le robot.
  36. *
  37. * \param void aucun
  38. * \return Retourne -1 en cas d'erreur ou 0 en cas de fermeture effectué
  39. */
  40. int close_communication_robot(void);
  41. /**
  42. * \brief Envoi une commande au robot et attends sa réponse.
  43. * \details Envoi une commande au robot en ajoutant le checksum et lis la réponse du robot en verifiant le checksum.
  44. Le premier paramétre \a cmd correspond au type de commande ex : PING, SETMOVE ...
  45. Le second paramétre \a *arg correspond aux arguments à la commande ex : SETMOVE, "100"
  46. La fonction retourne un code confirmation transmise par le robot (ROBOT_CHEKSUM, ROBOT_ERROR, ROBOT_TIMED_OUT, ROBOT_OK, ROBOT_UKNOW_CMD)
  47. *
  48. * \param cmd Entête de la commande
  49. * \param *arg Argument de la commande
  50. * \return retourne un code confirmation.
  51. */
  52. int send_command_to_robot(char cmd, const char * arg=NULL);
  53. #endif //DUMBERC_SERIAL_H_H