Dernière mise à jour :
Cette documentation s'applique à Perceval v.3.0.3.
Les commandes permettent de produire des évènements (ex: affichage, production sonore...) pour chaque trial. Toutes les commandes sonr optionnelles et dépendant du plan d'expérience.
Voir informations générales sur les commandes.
Chaque clé de la section définit une commande.
Commandes communes entre PERCEVAL et LANCELOT
Commandes uniquement pour PERCEVAL
Commandes uniquement pour LANCELOT
Syntaxe :
X10=BEGIN
X20=...
X30=REM je fais un commentaire pour comprendre la suite
X40=...
X50=END
Syntaxe :
Remarque : <TIME_BEGIN begin>, <TIME_END end> et <DURATION duration> sont reliées par la relation :Xn=PLAY_SOUND<fichier><VOLUME attenuation><TIME_BEGIN begin><TIME_BEGIN end><DURATION duration>
<fichier> est le nom du fichier wave (impérativement Windows PCM)
<VOLUME attenuation> définit le volume sonore (attenuation est impérativement une valeur négative ou nulle et correspond à l'atténuation en dB à apporter sur le fichier audio originel)
<TIME_BEGIN begin> définit la position temporelle initiale de production du fichier audio (begin est impérativement une valeur positive ou nulle et inférieure à la durée du fichier audio)
<TIME_END end> définit la position temporelle finale de production du fichier audio (end est impérativement une valeur supérieure à begin et inférieure à la durée du fichier audio)
<DURATION duration> définit la durée de production du fichier audio (duration est impérativement une valeur inférieure à la durée du fichier audio)
duration=end - begin
Figure 1: paramètres de la commande Perceval : PLAY_SOUND
Syntaxe :
Xn=DISPLAY_TEXT<texte>
<texte>définit la chaîne de caractères à afficher. Il est possible de faire appel aux TRIAL_DATA.
Exemples :
X20=DISPLAY_TEXT <#1> (voir exemple)
X50=DISPLAY_TEXT <vrai ou faux>
Syntaxe :
Xn=DISPLAY_FILEBMP <fichier.bmp>
<fichier.bmp> définit le nom du fichier bitmap à afficher. Il est possible de faire appel aux TRIAL_DATA.
Syntaxe :
Xn=CLEAR_SCREEN <color>
<color> définit la couleur d'effacement.
Syntaxe :
Xn=WAIT <ms>
<ms> définit la durée d'attente. Il est possible de faire appel aux TRIAL_DATA ou à la variable calculée $WAVE_DURATION.
Syntaxe :
Xn=GET_INPUT <DELAY ms>
<DELAY ms> définit le délai de réponse maximal autorisé au sujet. Il est possible de faire appel aux TRIAL_DATA. Si le délai n'est pas spécifié, l'attente de réponse est "inifinie".
Syntaxe :
Xn=PLAY_SOUND <fichier><SLEEP yes/no>
<fichier> est le nom du fichier wave (impérativement Windows PCM)
<SLEEP yes/no> permet ou non (resp yes, no) de bloquer (sleep) le dispositif pendant la production sonore.
Syntaxe :
Xn=SHOW_TEMPLATE <fichier>
<fichier> est le nom d'une page HTML.
Syntaxe :
Xn=START_CHRONO <WITHCOMMAND ID=nn>
<WITHCOMMAND ID=nn>est l'identificateur d'une commande. Le temps de réponse sera calculée entre le premier appel à cette commande et la validation des réponses par l'auditeur. Ce temps est approximatif (+/- 100 ms).
Syntaxe :
Xn=SHOW_MARK <mark1><mark2><mark3>...
<mark> est une marque cachée dans la page HTML. Il est possible de faire appel aux TRIAL_DATA ou à des variables calculées.
Syntaxe :
Xn=REPLACE_STRING <@AGE@ #AGE><@SEXE@ #SEXE><@TITRE@ $TITLE_GROUP>Xn=REPLACE_STRING <string1a string1b><string2a string2b>
<string> est une chaîne de caractères. Il est possible de faire appel
- aux TRIAL_DATA qui seront convertis
- à des variables calculées qui prendront leur valeur
Pour éviter les remplacements intempestifs, utilisez des séquences de caractères non ambigues dans le texte de la page HTML comme, par exemple, @AGE@. Si vous utilisez des séquences ambigues, comme par exemple err, le remplacement de err par ERREUR s'opérera sur erraillé (si ce mot est contenu dans la page) et erraillésera transformé en ERREURaillé!
Figure 2:effet de la commande Lancelot : REPLACE_STRING <@AGE@ #AGE><@SEXE@ #SEXE><@TITRE@ $TITLE_GROUP>
Syntaxe :
Xn=GET_RESPONSES <RESPONSE_BLOCK bloc><NON_RESPONSE_AUTHORISED yes/no>
<RESPONSE_BLOCK bloc> définit le bloc de réponses attendues. Le bloc doit être cohérent avec les définitions des items de réponses définis dans les SETTINGS.
blocdoit avoir la forme suivante :
5-10 items de réponses de 5 à 10 51 8 15> items de réponses de 5, 8 et 15
Syntaxe :
Xn=SHOW_NEXT_TRIAL_MARK
Pour rendre cette commande opérationnelle, il faut que la page HTML courante possède la commande cachée :
<A NAME="COMMAND::NEXT_TRIAL"> Suivant </A>
La documentation ci-dessous nécessite un minimum de connaissance sur la syntaxe HTML.
Pour plus d'information, consulter :
Il est possible d'insérer des commandes à l'intérieur d'une page HTML. Pour cela, lors de la composition de la page, il suffit de créer un lien hypertexte et de préciser que la cible est :
COMMAND::NOM_DE_LA_COMMANDE <param1> <param2>
Exemple :
Figure
3: l'image du haut-parleur contient un lien hypertexte (code HTML :
<AHREF=...></A>)
qui pointe sur une commande interactive PLAY_SOUND <#wave>¨...
Toutes les commandes Lancelot décrites ci-dessus peuvent être insérées dans une page HTML de la sorte.
Afin de pouvoir identifier ces commandes qui sont déclenchés de façon interactive par l'utilisateur (et non séquentiellement comme dans la section des commandes), il est possible de rajouter des propriétés. Ces propriétés doivent s'écrire de la sorte:
{ID=ii,RETRIGGERABLE=nn}COMMAND::NOM_DE_LA_COMMANDE <param1> <param2> où
- ID=iiest l'identificateur de la commande. Cet identificateur peut être utile pour déclencher le chronomètre (et calculer le temps de réaction) ou pour compter le nombre de fois qu'une commande interactive est déclenchée par l'auditeur.
- RETRIGGERABLE=nn indique que la commande est exécutable au maximum nn fois (propriété optionnelle)
Exemple :
Figure
3: l'image du haut-parleur contient un lien hypertexte (code HTML :
<AHREF=...></A>)
qui pointe sur une commande interactive PLAY_SOUND <#wave>¨... avec les
propriétés {ID=100,RETRIGGERABLE=3}
Les propriétés illustrés dans l'exemple, permettent:
Syntaxe HTML:
<P><A HREF="COMMAND::INSTRUCTIONS_READ">Cliquer ici pour commencer</A><P>Le lien vers COMMAND::INSTRUCTIONS_READ doit être impérativement inséré dans la page des instructions aux sujets, ceci afin de commencer le test.
Syntaxe HTML:
<P><A HREF="COMMAND::NEXT_TRIAL">Trial suivant</A><P>Le lien vers COMMAND::NEXT_TRIAL peut être inséré dans une page HTML pour passer au trial suivant.
Cette solution peut être génante car elle offre la possibilité au sujet de passer directement au trial suivant sans accomplir les épreuves du trial. La solution alternative est d'insérer la commande cachée sous forme d'ancre (bookmark):
<P><A NAME="COMMAND::NEXT_TRIAL">Trial suivant</A><P>
(la balise <A NAME= indique une ancre, à ne pas confondre avec <A HREF= qui indique un lien)L'avantage des ancres réside dans le fait qu'elle ne sont pas visibles, ni activables. Pour activer au bon moment (à la fin du trial), la commande COMMAND::NEXT_TRIAL, il suffit de faire appel à la commande SHOW_NEXT_TRIAL_MARK qui va transformer l'ancre en lien.
Les réponses sont fournies par un formulaire HTML. Il s'agit d'un ensemble de champs (boutons radio, cases à cocher, lignes de texte, champs de texte...) qui se termine par un bouton de validation.
Syntaxe HTML:
<FORM ACTION="COMMAND::POST_RESPONSES" METHOD="post">...</FORM>L'action du formulaire vers COMMAND::POST_RESPONSES doit être impérativement inséré dans la page<INPUT TYPE="RADIO" NAME="catégorie1" VALUE="value1">...
<INPUT TYPE="RADIO" NAME="catégorie1" VALUE="value2">...<INPUT TYPE="SUBMIT" VALUE="Valider">Saisie par un radio bouton de la valeur d'une catégorie de réponse. Cette information doit être cohérente avec les RESPONSE_ITEM définis dans la section SETTINGS du script.
</FORM>
Figure 4: principes de la saisie et validation des réponses avec un formulaire HTML
Syntaxe HTML:
<P><A HREF="COMMAND::FINISHED">Cliquer ici pour quitter</A><P>Le lien vers COMMAND::FINISHED peut être inséré dans la page du message final.
Les marques cachées sont des ancres HTML qui deviennent visibles sous l'action de la commande SHOW_MARK.
<A NAME="MARKHIDDEN::marque"></A>
où marque peut être un appel auxTRIAL_DATA ou à des variables calculées
Exemples:
<B><I><FONT COLOR="#FF0000"><A NAME="MARKHIDDEN::$CORRECT1"></A></FONT></I></B>
qui prendra la forme "normal" sous l'action de la commande SHOW_MARK <$CORRECT1> (si $CORRECT1=normal)
Figure 5: action de la commande SHOW_MARK sur les marques cachées