Results log not complete

PennController for IBEX Forums Support Results log not complete

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #10610
    afuerste
    Participant

    Dear Jeremy,

    unfortunately, we ran into two problems with an experiment in which audio files are listened to and then scored with scales.

    1. The experiment consists of three trials with one audio each. The sequence of the audios is random. Unfortunately, for the first trial it is not logged in the results which audio was played, only for the two subsequent trials. This error repeated itself in another test run, after that it didn’t log which audio was played at all.

    2. Not all scales are logged in the results. As you can see below, in the second trial only 5 scales are logged, in the third trial only 8. (Later test runs showed a mostly similar, but slightly different pattern in the results, sometimes with only 4 scales in the second trial, where one or two other scales were taken over).

    Enclosed I send the code of the audio trials, directly below an excerpt from the results of a test run. Maybe you have an idea and can help us out here.

    CODE:

    // Now create the Item trials reading the audio references from audios
    ,
    audio = ""
    ,Template( row =>
        PennController( "Item",
            audio = audios.shift(), // Extract next entry from audios
            audios2.push(audio)     // Place it in audios2
            ,
        newAudio( audio )
                .center()
                .once()
            ,
        newImage("message","messageExp3.png")
                .size(430,215)
            ,
        newCanvas("Message", 430,200 )
            .add(   130, 0, getImage("message"))
            .add( 150, 135, getAudio(audio))
        .print()
             ,
             getAudio( audio ).wait("first").remove()
             ,
             getImage("message").remove()
             ,
            newText("Bewertung","<p><br>Bitte die gehörte Person bewerten. Wie hört sich die gerade gehörte Person an? Dazu bitte die Fragen im jeweiligen Freitextfeld beantworten und Punkte auf den Skalen auswählen. </p>")
              .settings.css("font-family", "calibri").settings.css("font-size", "18px")
               .center()
                .print()
        ,
        newCanvas(600,120)
            .add(50, 0, getText("Bewertung"))
            .center()
            .print()
          ,
              //mandatory textfelder
                     newText("alter", "Wie alt ist die gehörte Person?")
                   .settings.css("font-size", "18px")
                   .settings.bold()
                   ,
                   newTextInput("alter")
    
                   .log()
                   ,
                   newCanvas("altercanvas", 1000, 40)
                   .settings.add(0, 0, getText("alter"))
                   .settings.add(450,3, getTextInput("alter"))
                   //.settings.center()
                   .print()
                   ,
                    newText("Leerzeile"," <br></p>")
                      .center()
                    .print()
                     ,    
                   newText("wohnort", "Wo lebt diese Person?")
                   .settings.css("font-size", "18px")
                   .settings.bold()
                   ,
                   newTextInput("wohnort")
    
                   .log()
                   ,
                   newCanvas("wohnortcanvas", 1000, 40)
                   .settings.add(0, 0, getText("wohnort"))
                   .settings.add(450,3, getTextInput("wohnort"))
                   //.settings.center()
                   .print()
                   ,
                    newText("Leerzeile"," <br></p>")
                      .center()
                    .print()
                     ,        
                       newText("herkunft", "Woher kommt die gehörte Person?")
                   .settings.css("font-size", "18px")
                   .settings.bold()
                   ,
                   newTextInput("herkunft")
    
                   .log()
                   ,
                   newCanvas("herkunftcanvas", 1000, 40)
                   .settings.add(0, 0, getText("herkunft"))
                   .settings.add(450,3, getTextInput("herkunft"))
                   //.settings.center()
                   .print()
                   ,
                    newText("Leerzeile"," <br></p>")
                      .center()
                    .print()
                     ,            
                  newText("situation", "Wo würde man einer solchen Person begegnen?")
                   .settings.css("font-size", "18px")
                   .settings.bold()
                   ,
                   newTextInput("situation")
    
                   .log()
                   ,
                   newCanvas("situationcanvas", 1000, 40)
                   .settings.add(0, 0, getText("situation"))
                   .settings.add(450,3, getTextInput("situation"))
                   //.settings.center()
                   .print()
                   ,
                    newText("Leerzeile"," <br></p>")
                      .center()
                    .print()
                     ,                    
          newScale("selbstbewusstsein", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht selbstbewusst</b>"))
            .settings.after(newText("<b>sehr selbstbewusst</b>"))
            .settings.log("final")
            .center()
            .print()
        ,
         newScale("sympathie", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht sympathisch</b>"))
            .settings.after(newText("<b>sehr sympathisch</b>"))
            .settings.log("final")
            .center()
            .print()
        , 
        newScale("erfolg", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>beruflich überhaupt nicht erfolgreich</b>"))
            .settings.after(newText("<b>beruflich sehr erfolgreich</b>"))
            .settings.log("final")
            .center()
            .print()
        ,
          newScale("entspanntheit", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht entspannt</b>"))
            .settings.after(newText("<b>sehr entspannt</b>"))
            .settings.log("final")
            .center()
            .print()
        ,          
        newScale("intelligenz", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht intelligent</b>"))
            .settings.after(newText("<b>sehr intelligent</b>"))
            .settings.log("final")
            .center()
            .print()
        ,      
        newScale("vertrautheit", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht vertraut</b>"))
            .settings.after(newText("<b>sehr vertraut</b>"))
            .settings.log("final")
            .center()
            .print()
        ,
        newScale("kompetenz", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht kompetent</b>"))
            .settings.after(newText("<b>sehr kompetent</b>"))
            .settings.log("final")
            .center()
            .print()
        ,            
         newScale("humor", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht humorvoll</b>"))
            .settings.after(newText("<b>sehr humorvoll</b>"))
            .settings.log("final")
            .center()
            .print()
        ,            
        newScale("ehrgeiz", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht ehrgeizig</b>"))
            .settings.after(newText("<b>sehr ehrgeizig</b>"))
            .settings.log("final")
            .center()
            .print() 
            ,    
        newScale("freundlichkeit", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht freundlich</b>"))
            .settings.after(newText("<b>sehr freundlich</b>"))
            .settings.log("final")
            .center()
            .print()
            ,
        newSelector("dummy")
            .add(getScale("freundlichkeit"),getScale("ehrgeiz"),getScale("humor"),getScale("kompetenz"),getScale("vertrautheit"),getScale("intelligenz"),getScale("entspanntheit"),getScale("erfolg"),getScale("sympathie"),getScale("selbstbewusstsein"))
            .shuffle()
            .disable()
        ,     
         newHtml("ItemQText", "ItemQ.html")
            .center()
            .settings.css("font-size", "large")
            .print()
        ,
        newTextInput("Begründung")
            .center()
            .log()
        ,
        newCanvas("Begründung",708,200)
            .add(0,0,getTextInput("Begründung") .size(708,100) .lines(15))
            .print()
    ,              
        getTextInput("Begründung").settings.log("final")
        ,
        newFunction( ()=>{
        window.scrollTo(0,0);
        document.querySelector(".PennController-TextInput.PennController-alter").focus();
    }).call()                
    ,
            newButton( "Weiter" )
                .settings.css("font-family", "calibri").settings.css("font-size", "12px")
                   //.settings.center()
                   .log()
                   .center()
                   .print()
                   .wait(newFunction('dummy', ()=>true).test.is(true)
                // Skalen
                .and(getScale("selbstbewusstsein","sympathie","erfolg","entspanntheit","intelligenz","vertrautheit","kompetenz","humor","ehrgeiz","freundlichkeit").test.selected()
                  .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
             //mandatoryTextfeld
                    ).and(
                 getTextInput("herkunft","alter","wohnort","situation").test.text(/^.+/) // testing if at least one digit was written in the input box
                    .failure(
                       newText("textfelderror","<br>Bitte jede Frage zur Person im jeweiligen Textfeld beantworten.")
                       .settings.color("red")
                       .center()
                       .print())
            )
        )
        .log("audio", audio)    // Log which audio was played
        ))
    

    RESULTS EXCERPT:

    # Results on Tuesday May 23 2023 13:41:26 UTC.
    # USER AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36
    # Design number was non-random = 146
    #
    # Columns below this comment are as follows:
    # 1. Time results were received.
    # 2. MD5 hash of participant's IP address.
    # 3. Controller name.
    # 4. Item number.
    # 5. Element number.
    # 6. Type.
    # 7. Group.
    # 8. PennElementType.
    # 9. PennElementName.
    # 10. Parameter.
    # 11. Value.
    # 12. EventTime.
    # 13. Comments.
    1684849287,OMITTED,PennController,1,0,Info,NULL,PennController,0,_Trial_,Start,1.68485E+12,NULL
    1684849287,OMITTED,PennController,1,0,Info,NULL,PennController,0,_Trial_,End,1.68485E+12,NULL
    1684849287,OMITTED,PennController,2,0,Consent,NULL,PennController,1,_Trial_,Start,1.68485E+12,NULL
    1684849287,OMITTED,PennController,2,0,Consent,NULL,Button,Weiter,Click,Click,1.68485E+12,NULL
    1684849287,OMITTED,PennController,2,0,Consent,NULL,PennController,1,_Trial_,End,1.68485E+12,NULL
    1684849287,OMITTED,PennController,3,0,Code,NULL,PennController,2,_Trial_,Start,1.68485E+12,NULL
    1684849287,OMITTED,PennController,3,0,Code,NULL,TextInput,Texteingabe-Code,Final,ER33RE,1.68485E+12,NULL
    1684849287,OMITTED,PennController,3,0,Code,NULL,PennController,2,_Trial_,End,1.68485E+12,NULL
    1684849287,OMITTED,PennController,4,0,Anleitung,NULL,PennController,3,_Trial_,Start,1.68485E+12,NULL
    1684849287,OMITTED,PennController,4,0,Anleitung,NULL,PennController,3,_Trial_,End,1.68485E+12,NULL
    1684849287,OMITTED,PennController,5,0,Probedurchlauf,NULL,PennController,4,_Trial_,Start,1.68485E+12,NULL
    1684849287,OMITTED,PennController,5,0,Probedurchlauf,NULL,PennController,4,_Trial_,End,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,PennController,11,_Trial_,Start,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,TextInput,alter,Final,Alter1,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,TextInput,alter,First,,1.68485E+12,1
    1684849287,OMITTED,PennController,9,0,Item,NULL,TextInput,wohnort,Final,WoLebt2,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,TextInput,wohnort,First,,1.68485E+12,2
    1684849287,OMITTED,PennController,9,0,Item,NULL,TextInput,herkunft,Final,WoherKommt3,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,TextInput,herkunft,First,,1.68485E+12,3
    1684849287,OMITTED,PennController,9,0,Item,NULL,TextInput,situation,Final,WoBegegnen4,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,TextInput,situation,First,,1.68485E+12,4
    1684849287,OMITTED,PennController,9,0,Item,NULL,TextInput,Begründung,Final,test1,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,Scale,selbstbewusstsein,Choice,7,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,Scale,sympathie,Choice,1,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,Scale,erfolg,Choice,7,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,Scale,entspanntheit,Choice,1,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,Scale,intelligenz,Choice,7,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,Scale,vertrautheit,Choice,1,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,Scale,kompetenz,Choice,7,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,Scale,humor,Choice,1,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,Scale,ehrgeiz,Choice,7,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,Scale,freundlichkeit,Choice,1,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,Button,Weiter,Click,Click,1.68485E+12,NULL
    1684849287,OMITTED,PennController,9,0,Item,NULL,PennController,11,_Trial_,End,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,PennController,12,_Trial_,Start,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,Audio,openguise_m_namlex.wav,buffer,55.933838,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,TextInput,alter,Final,Alter11,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,TextInput,alter,First,,1.68485E+12,2
    1684849287,OMITTED,PennController,10,0,Item,NULL,TextInput,wohnort,Final,Lebt22,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,TextInput,wohnort,First,,1.68485E+12,Shift
    1684849287,OMITTED,PennController,10,0,Item,NULL,TextInput,herkunft,Final,Woher33,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,TextInput,herkunft,First,,1.68485E+12,Shift
    1684849287,OMITTED,PennController,10,0,Item,NULL,TextInput,situation,Final,Begegnen44,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,TextInput,situation,First,,1.68485E+12,Shift
    1684849287,OMITTED,PennController,10,0,Item,NULL,TextInput,Begründung,Final,test2,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,Scale,selbstbewusstsein,Choice,3,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,Scale,erfolg,Choice,3,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,Scale,entspanntheit,Choice,3,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,Scale,intelligenz,Choice,3,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,Scale,ehrgeiz,Choice,3,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,Button,Weiter,Click,Click,1.68485E+12,NULL
    1684849287,OMITTED,PennController,10,0,Item,NULL,PennController,12,_Trial_,End,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,PennController,13,_Trial_,Start,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,Audio,openguise_m_sd.wav,buffer,44.421937,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,TextInput,alter,Final,Alter111,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,TextInput,alter,First,,1.68485E+12,Shift
    1684849287,OMITTED,PennController,11,0,Item,NULL,TextInput,wohnort,Final,Wo222,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,TextInput,wohnort,First,,1.68485E+12,Shift
    1684849287,OMITTED,PennController,11,0,Item,NULL,TextInput,herkunft,Final,Woher333,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,TextInput,herkunft,First,,1.68485E+12,Shift
    1684849287,OMITTED,PennController,11,0,Item,NULL,TextInput,situation,Final,Begegnen444,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,TextInput,situation,First,,1.68485E+12,Shift
    1684849287,OMITTED,PennController,11,0,Item,NULL,TextInput,Begründung,Final,test3,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,Scale,sympathie,Choice,4,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,Scale,erfolg,Choice,4,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,Scale,entspanntheit,Choice,4,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,Scale,intelligenz,Choice,4,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,Scale,vertrautheit,Choice,4,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,Scale,humor,Choice,4,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,Scale,ehrgeiz,Choice,4,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,Scale,freundlichkeit,Choice,4,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,Button,Weiter,Click,Click,1.68485E+12,NULL
    1684849287,OMITTED,PennController,11,0,Item,NULL,PennController,13,_Trial_,End,1.68485E+12,NULL
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,PennController,5,_Trial_,Start,1.68485E+12,NULL
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,TextInput,beforeinput,Final,,1.68485E+12,NULL
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,TextInput,wohnort,Final,WohnortDesProbanden,1.68485E+12,NULL
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,TextInput,wohnort,First,,1.68485E+12,d
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,TextInput,aufgewachsen,Final,AufwachsenDesProbanden,1.68485E+12,NULL
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,TextInput,aufgewachsen,First,,1.68485E+12,Shift
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,TextInput,studiuminput,Final,,1.68485E+12,NULL
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,DropDown,before,Selected,Nein,1.68485E+12,1
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,DropDown,age,Selected,20,1.68485E+12,2
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,DropDown,sex,Selected,Männlich,1.68485E+12,1
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,DropDown,abschluss,Selected,Studium ohne Abschluss,1.68485E+12,3
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,DropDown,studium,Selected,Nein,1.68485E+12,1
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,Button,continue,Click,Click,1.68485E+12,NULL
    1684849287,OMITTED,PennController,12,0,Meta1,NULL,PennController,5,_Trial_,End,1.68485E+12,NULL
    1684849287,OMITTED,PennController,13,0,Meta2,NULL,PennController,6,_Trial_,Start,1.68485E+12,NULL
    1684849287,OMITTED,PennController,13,0,Meta2,NULL,TextInput,SprachenMutter,Final,MutterSprache111,1.68485E+12,NULL
    1684849287,OMITTED,PennController,13,0,Meta2,NULL,TextInput,SprachenVater,Final,VaterSprache222,1.68485E+12,NULL
    1684849287,OMITTED,PennController,13,0,Meta2,NULL,TextInput,SprachenSelbst,Final,AlltagSprache333,1.68485E+12,NULL
    1684849287,OMITTED,PennController,13,0,Meta2,NULL,TextInput,Dialekt,Final,Dialekt444,1.68485E+12,NULL
    1684849287,OMITTED,PennController,13,0,Meta2,NULL,TextInput,Email,Final,E-Mail-Adressen-Angabe 123,1.68485E+12,NULL
    1684849287,OMITTED,PennController,13,0,Meta2,NULL,Button,Ende,Click,Click,1.68485E+12,NULL
    1684849287,OMITTED,PennController,13,0,Meta2,NULL,PennController,6,_Trial_,End,1.68485E+12,NULL
    • This topic was modified 12 months ago by florians. Reason: Deleted MD5 hash
    #10613
    Jeremy
    Keymaster

    Hi,

    I don’t immediately see a problem with your code. Would you be able to share a link to your experiment with me (even if it’s not on the PCIbex Farm), here or at support@pcibex.net so I can take a closer look?

    Jeremy

    #10626
    afuerste
    Participant

    I sent you the experiment, and also the GitHub link. It would be great if you could take a look. Thank you!

    #10627
    Jeremy
    Keymaster

    Hi,

    Thank you for sharing the link to your study. I have to apologize, I should have paid closer attention to your code. As it turns out, you’re not calling .log on any Audio element, so you cannot expect any line to be added to the results file about playback. The lines you see in the results file report “buffer” events, which are logged anyway to warn you that playback might not have gone through smoothly, but it’s hard to tell what actually happened without the logs of the corresponding “play” and “end” events

    You also misplaced the .log("audio", audio) command on the closing parenthesis of the Button element’s wait command, so you cannot expect the results file to report which audio file corresponds to which item (the fact that you have logs of buffer events that also report the audio filenames are lucky coincidences, in a way)

    I’m not sure why your results file does not contain one line per Scale element, but I note that it’s possible to end the trials without making selections on all the scales. Indeed, you use getScale("selbstbewusstsein","sympathie","erfolg","entspanntheit","intelligenz","vertrautheit","kompetenz","humor","ehrgeiz","freundlichkeit") (and also getTextInput("herkunft","alter","wohnort","situation")) as a way to apply a conjunction of tests on the Scale elements of the names passed as arguments to getScale, but that syntax simply doesn’t exist in PennController. Those will only test one element

    That being said, the results file should still report a line saying “NA” even if a Scale element was never selected. I see that the values in your EvenTime column have been transformed (eg. 1.68485E+12 instead of a full 13-digit integer). Could it be that some lines got lost in the opening/editing process?

    Jeremy

    #10660
    afuerste
    Participant

    Hi,

    thank you for your help. The EvenTime data was indeed shortened only when copied into the message above; in the results file they are complete. I have now placed the log command to record which audio file is played in the getAudio command.

    I also tried writing out the getScale command for each scale to make sure all scales are listed in the results. Unfortunately, I now get the “There must be some items in the running order” error. Can you take another look at this?

    audios = []     // audios will reference the audios in a randomized order for simple playback
    ,
    audios2 = []    // audios2 will ultimately be a copy of audios
    // Create dummy trials to browse the table and feed then shuffle audios
    ,
    Template("OG-audios.csv", row =>
        PennController( audios.push(row.Audio),
        fisherYates(audios) )
        )
    
    // Now create the Item trials reading the audio references from audios
    ,
    audio = ""
    ,Template( row =>
        PennController( "Item",
            audio = audios.shift(), // Extract next entry from audios
            audios2.push(audio)     // Place it in audios2
            ,
        newAudio( audio )
                .center()
                .once()
            ,
        newImage("message","messageExp3.png")
                .size(430,215)
            ,
        newCanvas("Message", 430,200 )
            .add(   130, 0, getImage("message"))
            .add( 150, 135, getAudio(audio))
        .print()
             ,
             getAudio( audio )
                       .wait("first")
                       .log()
                       .remove()
             ,
             getImage("message").remove()
             ,
            newText("Bewertung","<p><br>Bitte die gehörte Person bewerten. Wie hört sich die gerade gehörte Person an? Dazu bitte die Fragen im jeweiligen Freitextfeld beantworten und Punkte auf den Skalen auswählen. </p>")
              .settings.css("font-family", "calibri").settings.css("font-size", "18px")
               .center()
                .print()
        ,
        newCanvas(600,120)
            .add(50, 0, getText("Bewertung"))
            .center()
            .print()
          ,
              //mandatory textfelder
                     newText("alter", "Wie alt ist die gehörte Person?")
                   .settings.css("font-size", "18px")
                   .settings.bold()
                   ,
                   newTextInput("alter")
    
                   .log()
                   ,
                   newCanvas("altercanvas", 1000, 40)
                   .settings.add(0, 0, getText("alter"))
                   .settings.add(450,3, getTextInput("alter"))
                   //.settings.center()
                   .print()
                   ,
                    newText("Leerzeile"," <br></p>")
                      .center()
                    .print()
                     ,    
                   newText("wohnort", "Wo lebt diese Person?")
                   .settings.css("font-size", "18px")
                   .settings.bold()
                   ,
                   newTextInput("wohnort")
    
                   .log()
                   ,
                   newCanvas("wohnortcanvas", 1000, 40)
                   .settings.add(0, 0, getText("wohnort"))
                   .settings.add(450,3, getTextInput("wohnort"))
                   //.settings.center()
                   .print()
                   ,
                    newText("Leerzeile"," <br></p>")
                      .center()
                    .print()
                     ,        
                       newText("herkunft", "Woher kommt die gehörte Person?")
                   .settings.css("font-size", "18px")
                   .settings.bold()
                   ,
                   newTextInput("herkunft")
    
                   .log()
                   ,
                   newCanvas("herkunftcanvas", 1000, 40)
                   .settings.add(0, 0, getText("herkunft"))
                   .settings.add(450,3, getTextInput("herkunft"))
                   //.settings.center()
                   .print()
                   ,
                    newText("Leerzeile"," <br></p>")
                      .center()
                    .print()
                     ,            
                  newText("situation", "Wo würde man einer solchen Person begegnen?")
                   .settings.css("font-size", "18px")
                   .settings.bold()
                   ,
                   newTextInput("situation")
    
                   .log()
                   ,
                   newCanvas("situationcanvas", 1000, 40)
                   .settings.add(0, 0, getText("situation"))
                   .settings.add(450,3, getTextInput("situation"))
                   //.settings.center()
                   .print()
                   ,
                    newText("Leerzeile"," <br></p>")
                      .center()
                    .print()
                     ,                    
          newScale("selbstbewusstsein", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht selbstbewusst</b>"))
            .settings.after(newText("<b>sehr selbstbewusst</b>"))
            .settings.log("final")
            .center()
            .print()
        ,
         newScale("sympathie", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht sympathisch</b>"))
            .settings.after(newText("<b>sehr sympathisch</b>"))
            .settings.log("final")
            .center()
            .print()
        , 
        newScale("erfolg", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>beruflich überhaupt nicht erfolgreich</b>"))
            .settings.after(newText("<b>beruflich sehr erfolgreich</b>"))
            .settings.log("final")
            .center()
            .print()
        ,
          newScale("entspanntheit", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht entspannt</b>"))
            .settings.after(newText("<b>sehr entspannt</b>"))
            .settings.log("final")
            .center()
            .print()
        ,          
        newScale("intelligenz", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht intelligent</b>"))
            .settings.after(newText("<b>sehr intelligent</b>"))
            .settings.log("final")
            .center()
            .print()
        ,      
        newScale("vertrautheit", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht vertraut</b>"))
            .settings.after(newText("<b>sehr vertraut</b>"))
            .settings.log("final")
            .center()
            .print()
        ,
        newScale("kompetenz", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht kompetent</b>"))
            .settings.after(newText("<b>sehr kompetent</b>"))
            .settings.log("final")
            .center()
            .print()
        ,            
         newScale("humor", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht humorvoll</b>"))
            .settings.after(newText("<b>sehr humorvoll</b>"))
            .settings.log("final")
            .center()
            .print()
        ,            
        newScale("ehrgeiz", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht ehrgeizig</b>"))
            .settings.after(newText("<b>sehr ehrgeizig</b>"))
            .settings.log("final")
            .center()
            .print() 
            ,    
        newScale("freundlichkeit", 7)
            .settings.css("font-family", "calibri").settings.css("font-size", "22px")
            .settings.labelsPosition("bottom").color("white")
            .settings.before(newText("<b>überhaupt nicht freundlich</b>"))
            .settings.after(newText("<b>sehr freundlich</b>"))
            .settings.log("final")
            .center()
            .print()
            ,
        newSelector("dummy")
            .add(getScale("freundlichkeit"),getScale("ehrgeiz"),getScale("humor"),getScale("kompetenz"),getScale("vertrautheit"),getScale("intelligenz"),getScale("entspanntheit"),getScale("erfolg"),getScale("sympathie"),getScale("selbstbewusstsein"))
            .shuffle()
            .disable()
        ,     
         newHtml("ItemQText", "ItemQ.html")
            .center()
            .settings.css("font-size", "large")
            .print()
        ,
        newTextInput("Begründung")
            .center()
            .log()
        ,
        newCanvas("Begründung",708,200)
            .add(0,0,getTextInput("Begründung") .size(708,100) .lines(15))
            .print()
    ,              
        getTextInput("Begründung").settings.log("final")
        ,
        newFunction( ()=>{
        window.scrollTo(0,0);
        document.querySelector(".PennController-TextInput.PennController-alter").focus();
    }).call()                
    ,
            newButton( "Weiter" )
                .settings.css("font-family", "calibri").settings.css("font-size", "12px")
                   //.settings.center()
                   .log()
                   .center()
                   .print()
                   .wait(newFunction('dummy', ()=>true).test.is(true)
                // Skalen
                .and(getScale("selbstbewusstsein").test.selected()
                  .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
                .and(getScale("sympathie").test.selected()
                  .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
                .and(getScale("erfolg").test.selected()
                  .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
                .and(getScale("entspanntheit").test.selected()
                  .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
                .and(getScale("intelligenz").test.selected()
                  .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
                .and(getScale("vertrautheit").test.selected()
                  .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
                .and(getScale("kompetenz").test.selected()
                  .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
                .and(getScale("humor").test.selected()
                  .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
                .and(getScale("ehrgeiz").test.selected()
                  .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
                .and(getScale("freundlichkeit").test.selected()
                  .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
             //mandatoryTextfeld
                    ).and(
                 getTextInput("herkunft","alter","wohnort","situation").test.text(/^.+/) // testing if at least one digit was written in the input box
                    .failure(
                       newText("textfelderror","<br>Bitte jede Frage zur Person im jeweiligen Textfeld beantworten.")
                       .settings.color("red")
                       .center()
                       .print())
            )
        )
        ))
    #10671
    Jeremy
    Keymaster

    Hi,

    You need to close your ands so you can attach failure on their closing parenthesis:

    newFunction('dummy', ()=>true).test.is(true)
      .and( getScale("selbstbewusstsein").test.selected()
        .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
      ).and( getScale("sympathie").test.selected()
        .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
      ).and( getScale("erfolg").test.selected()
        .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
      ).and( getScale("entspanntheit").test.selected()
        .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
      ).and( getScale("intelligenz").test.selected()
        .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
      ).and( getScale("vertrautheit").test.selected()
        .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
      ).and( getScale("kompetenz").test.selected()
        .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
      ).and( getScale("humor").test.selected()
        .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
      ).and( getScale("ehrgeiz").test.selected()
        .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
      ).and( getScale("freundlichkeit").test.selected()
        .failure( newText('errorscales', "<br>Bitte auf jeder Skala einen Punkt auswählen.").color("red") .center().print() )
      ).and( getTextInput("herkunft","alter","wohnort","situation").test.text(/^.+/) // testing if at least one digit was written in the input box
        .failure( newText("textfelderror","<br>Bitte jede Frage zur Person im jeweiligen Textfeld beantworten.").color("red").center().print() )
      )

    Jeremy

    #10677
    afuerste
    Participant

    Thank you very much for the correction, Jeremy! Unfortunateliy, there is still one issue concerning the compatibility of the Ibex experiment with certain browsers; precisely, missing logs in the results if Firefox is used, for example. I don’t know if such a problem can be solved on the code itself. I sent you the link to our experiment and details per mail. I hope you can take a look before we go live with it.

    #10684
    Jeremy
    Keymaster

    Hi,

    Actually you are passing "final" to your Scale elements’ log commands, when it should be "last" (reference). Ironically, passing "final" instead of "last" causes a bug that prevents logging any (and so, a fortiori, the last) choice when several choices happened on the same scale

    Also note that you still have the ill-formed test on the Scale element(s) I mentioned above which allows participants to click the button and proceed without having made a selection on all the scales, in which case you would also not see lines in the results file for unselected scales

    Jeremy

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.