KbWait 不会注册按键



我正在尝试收集键盘数据,但无法让KbWait工作。在下面的代码中,我试图等待参与者做出回应,检查他们的回应是否是两个可接受的答案之一,然后继续。只有当参与者按下"j"或"f"时,它才应该继续。

        response = [];        
        while isempty(response)&&(GetSecs - FlipTimestamp) < 10
            [keyIsDown, RTsecs, RTkeyCode, deltaSecs] = KbWait;
            if keyIsDown
                r=find(RTkeyCode);%this should be the code for the key pressed
                response=KbName(r);%Figure out what key was pressed
                rt=num2str(RTsecs-time);  %subtract off timestamp from when window was flipped
                if response == 'f'
                    match_response= false;
                end
                if response == 'j'
                    match_response= true;
                end
            end
        end

但是,KbWait永远不会返回。当我尝试从命令行运行它时,它也不起作用。它只是挂断了,拒绝返回,我不得不中断程序。

您发布这篇文章已经九个月了,所以我想您已经找到了某种解决方案。但我也遇到了这个问题,下面是我发现的:

我浏览了我的整个HID列表:设备=PsychHID("设备")当我检查每个设备的"usageName"属性时,我发现多个设备被认为是"Keyboard",尽管我只连接了一个实际的键盘。

然后,我尝试将每个索引作为KbWait的参数。当我找到正确的一个时,KbWait起作用了。

你好,我想你的问题是KbWait函数。

您使用了类似于ist KbCheck的KbWait,但这些函数的输出是不同的

[secs, keyCode, deltaSecs] = KbWait([deviceNumber][, forWhat=0][, untilTime=inf])
[keyIsDown, secs, keyCode, deltaSecs] = KbCheck([deviceNumber])

尝试KbCheck它比KbWait更精确,因为KbWait只每隔5毫秒检查一次键盘

这是我以前写的一个函数:工作KbCheck

相关内容

  • 没有找到相关文章

最新更新