Pages: [1]   Go Down
Author Topic: [EasyVR Shield] Utilisation de la bibliothèque  (Read 98 times)
0 Members and 2 Guests are viewing this topic.
Offline Offline
God Member
*****
Karma: 12
Posts: 912
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut à tous,

Je rencontre un soucis dans l'utilisation d'une fonction de la bibliothèque de ce shield:
http://www.veear.eu/products/easyvr-arduino-shield/

Je n'arrive pas à utiliser la fonction "Sleep" avec un réveil par 3 claps à la main.
Et mon problème va au delà, car je ne comprends pas bien comment on utilise les fonctions de la bibliothèque à télécharger ici:
http://download.tigal.com/veear/EasyVR_2/EasyVR-Arduino-library-1.4.zip

Dans le manuel, il est indiqué que:
Quote
bool sleep (int8_t mode)
Puts the module in sleep mode.
Parameters: mode is one of values in WakeMode, optionally combined with one of the values in ClapSense
Return values: true if the operation is successful

Dans le fichier .h j'ai les infos suivantes:
Quote
/** Constants for choosing wake-up method in sleep mode */
  enum WakeMode
  {
    WAKE_ON_CHAR = 0,       /**< Wake up on any character received */
    WAKE_ON_WHISTLE = 1,    /**< Wake up on whistle or any character received */
    WAKE_ON_LOUDSOUND = 2,  /**< Wake up on a loud sound or any character received */
    WAKE_ON_2CLAPS = 3,     /**< Wake up on double hands-clap or any character received */
    WAKE_ON_3CLAPS = 6,     /**< Wake up on triple hands-clap or any character received */
  };
  /** Hands-clap sensitivity for wakeup from sleep mode.
  Use in combination with #WAKE_ON_2CLAPS or #WAKE_ON_3CLAPS */
  enum ClapSense
  {
    CLAP_SENSE_LOW = 0,      /**< Lowest threshold */
    CLAP_SENSE_MID = 1,      /**< Typical threshold */
    CLAP_SENSE_HIGH = 2,     /**< Highest threshold */
  };

bool sleep(int8_t mode);
  // command management
  /**
    Adds a new custom command to a group.
    @param group (0-16) is the target group, or one of the values in #Groups
    @param index (0-31) is the index of the command within the selected group
    @retval true if the operation is successful
  */

Dans le .cpp j'ai:
Quote
bool EasyVR::sleep(int8_t mode)
{
  sendCmd(CMD_SLEEP);
  sendArg(mode);

  if (recv(DEF_TIMEOUT) == STS_SUCCESS)
    return true;
  return false;
}

Ce que je veux c'est mettre mon module en veille, avec un réveil par 3 claps de mains.

Comment je fais, et d'une façon plus générale comment je fais pour utiliser la librairie?
Par exemple comment je sélectionne le WakeMode à la valeur "WAKE_ON_3CLAPS" et ClapSense à "CLAP_SENSE_MID" ?
J'ai déclaré un objet de type EasyVR easyvr(port);
Donc j'essaye easyvr.WakeMode(6); mais ça ne fonctionne pas.
La fonction easyvr.sleep(smiley-cool; est détectée par le compilateur mais quand je l'execute le module ne passe pas en veille.

Des suggestions?
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 912
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pas de piste pour mon problème?

En fait je ne comprends pas ce que sont les "enum" dans la bibliothèque?
Peut-on les utiliser pour paramétrer?

Logged

Offline Offline
Full Member
***
Karma: 2
Posts: 129
Alarme domestique sans fil : http://forum.arduino.cc/index.php?topic=239679.0
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Alors si j'ai bien compris ( et arête moi si je me méprends ) tu confonds les donnes du .h et du .cpp.
Le .h définit les variables , maccros et autres déclarations tandis que le cpp dans ton cas définit les fonctions de la classe easyvr.

Donc tu ne peux pas utiliser ton objet avec wakemode.

Cependant tu peux utiliser ton objet avec la fonction sleep qui nécessite un paramètre mode. Et c'est la que tu places wakemode.

Essaies donc : easyvr.sleep(WAKE_ON_3CLAPS);

En espérant t'aider
Bon courage !!
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 912
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, merci pour la réponse. Je suis en congés en ce moment mais je testerais ça des mon retour ; )
Logged

Pages: [1]   Go Up
Jump to: