[RESOLU] [EasyVR Shield] Utilisation de la bibliothèque

Salut à tous,

Je rencontre un soucis dans l’utilisation d’une fonction de la bibliothèque de ce 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:

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:

/** 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:

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(8); est détectée par le compilateur mais quand je l’execute le module ne passe pas en veille.

Des suggestions?

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?

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 !!

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

john_lenfr: En fait je ne comprends pas ce que sont les "enum" dans la bibliothèque?

Des enums, c'est juste un moyen de déclarer des constantes sous forme d'une liste.

derder9161: 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 !!

J'ai essayé easyvr.sleep(WAKE_ON_3CLAPS); mais j'ai une erreur: VBC.ino: In function 'void setup()': VBC:223: error: 'WAKE_ON_3CLAPS' was not declared in this scope

Une idée de ce qui va pas?

J'ai finalement réussi à faire ce que je voulais:

http://www.youtube.com/watch?v=nrVqBpkaIMk

:grin: