FW: In gratitude

Tony Zuccolotto anthony.zuccolotto at pstnet.com
Thu Jan 10 14:00:24 UTC 2002


Kai,

Glad to be of assistance.

The solution I gave sounds like it will work, but note that there are
other ways in E-Prime to deal with limiting the logging of data you are
not interested in.

If you run into this situation again it might be worth your programmer
writing a very simple experiment (e.g. 1 List with 1 Procedure and a
TextDisplay with a single response enabled) and then generating the
script and examining it in the script window or by loading the script
(*.ebs) into E-Run.

You will see that each procedure generates a subroutine that holds the
script for that procedure.   If your procedure is named TrialProc then
E-Prime will generate a subroutine named TrialProc_Run.   This procedure
is what is run whenever the TrialProc is called from a List to execute.

The whole logging system in E-Prime works by adding attribute and their
values to the experimental Context.   The Context is a multi-level data
structure that holds all of the attributes and their values that are
currently active in the paradigm.  Attributes can be independent
variables (typically declared on List objects), dependent measures, or
any other type of information you feel is valid for your paradigm and
post-analysis.   You will see the Context being passed into the
TrialProc_Run subroutine as a parameter (named c).

If you examine the TrialProc_Run subroutine you will see script that
adds different attributes to the context at various points in the
subroutine, e.g.
	c.SetAttrib "Stimulus.RT", Stimulus.RT

E-Prime handles most of the management of the Context for, but you can
add or override anything you want in the Context using the c.SetAttrib
method.   You can also pull information from the context using the
c.GetAttrib method.

When it comes time to log at the end of the trial, E-Prime assumes all
the data that is relevant for that trial is in held in the Context and
it then makes a single call to
	c.Log

This call instructs the Context to write all of its relevant data to the
data file on disk.

If you want to handle all logging yourself then you can turn off the
default call to c.Log at the end of the Procedure by setting the LogData
property for the Procedure object to "No" (via the Properties Window in
E-Studio).   After that, it is your responsibility to update the
attribute values in the context and call c.Log as little or as often as
is needed to meet the needs of your paradigm.

There is more information on the Context object in the User's Manual and
E-Basic Help for further detail.

Regards,
Tony


-----Original Message-----
From: Kai [mailto:kai.osterberg at ymed.lu.se]
Sent: Thursday, January 10, 2002 8:36 AM
To: Tony Zuccolotto
Subject: In gratitude


Dear Tony,

Our programmer is now very optimistic after having read your mail.
Thanks a lot for your help!

Kai

---------------------------------------------------------------------
Original message:
Date:         Mon, 7 Jan 2002 11:37:02 -0500
Reply-To:     Tony Zuccolotto
<anthony.zuccolotto at pstnet.com>
Sender:       Eprime List <eprime at STEP.PSY.CMU.EDU>
From:         Tony Zuccolotto
<anthony.zuccolotto at pstnet.com>
Subject:      Re: Using visual-analogue scales in
E-prime
Comments: To: eprime at mail.talkbank.org
Content-Type: text/plain; charset="iso-8859-1"

Dear Kai,

You should be able to achieve this by just using a
Label object in the
procedure and a Goto statement in Inline script.

Put the Label above the object that collects your
input and then after
the object check in script (using an IF statement) if
the subject has
made the 'final' response.  If the 'final' response
was not made then
just process the key as normal and then call Goto
Label1 (replace Label1
with whatever you called your label).

The TrialProc would have the following object on it
        <Label1>        ' designates where to jump back to
        <Stimulus>      ' collects the response
        <Inline>        ' tests for final response, updates
interface
and jumps

Assuming you were using the '3' key on the SRBOX as an
indication of the
'final' response the inline script you would need
would look sometime
like
        If Stimulus.RESP <> "3" Then
                ' move arrow and draw at new location
                ....

                Goto Label1
        End If

Because you jump back to the top of the procedure
logging to the data
file never occurs.   Thus after the final response
comes in you just let
the Procedure end normally and only that 1 trial
should be logged that
contains the final response you are interested in.

If you want the 'total' response time then you should
save the
Stimulus.OnsetTime of the very first trial in a global
variable and then
you can compute a total RT as follows.

        Dim totalRT as Long
        totalRT = Stimulus.RTTime -
g_nOnsetTimeOfFirstStimulus
        c.SetAttrib "TotalRT", totalRT

Hope that helps,
Tony

Anthony P. Zuccolotto
Vice President of Operations
Psychology Software Tools, Inc.
2050 Ardmore Boulevard
Suite 200
Pittsburgh, PA 15221-4610
Phone     412-271-5040
FAX       412-271-7077
Email     anthony.zuccolotto at pstnet.com
Internet  http://www.pstnet.com/



More information about the Eprime mailing list