11/26
@ -1,7 +1,728 @@
|
|||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
property int hitIndex: -1
|
||||||
|
property bool bStimulate: false
|
||||||
|
property int responseTime: 10*1000
|
||||||
|
property bool bTest: true
|
||||||
|
|
||||||
|
property int currentIndexTenHz: 0
|
||||||
|
property var imageFilesTenHz:
|
||||||
|
[
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R01.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R02.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R03.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R04.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R05.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R06.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R07.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R08.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R09.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R10.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R11.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R12.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R13.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R14.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest/upper_stretch_R15.png"
|
||||||
|
]
|
||||||
|
|
||||||
|
property int currentIndexTwelevHz: 0
|
||||||
|
property var imageFilesTwelevHz:
|
||||||
|
[
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest2D/upper_stretch_R01.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest2D/upper_stretch_R02.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest2D/upper_stretch_R03.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest2D/upper_stretch_R04.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest2D/upper_stretch_R05.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest2D/upper_stretch_R06.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest2D/upper_stretch_R07.png"
|
||||||
|
]
|
||||||
|
|
||||||
|
property int currentIndexFifteenHz: 0
|
||||||
|
property var imageFilesFifteenHz:
|
||||||
|
[
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R01.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R02.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R03.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R04.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R05.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R06.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R07.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R08.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R09.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R10.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R11.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R12.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R13.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R14.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R15.png",
|
||||||
|
"qrc:/DependFile/Source/brainTrain/upTest3/upper_stretch_R16.png",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
function startStimulate()
|
||||||
|
{
|
||||||
|
animationTenHz.start();
|
||||||
|
animationTwelveHz.start();
|
||||||
|
animationFifteenHz.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
function stopStimulate()
|
||||||
|
{
|
||||||
|
if(animationTenHz.running)
|
||||||
|
{
|
||||||
|
animationTenHz.stop();
|
||||||
|
flashingImageTenHz.opacity = 1;
|
||||||
|
}
|
||||||
|
if(animationTwelveHz.running)
|
||||||
|
{
|
||||||
|
animationTwelveHz.stop();
|
||||||
|
flashingImageTwelveHz.opacity = 1;
|
||||||
|
}
|
||||||
|
if(animationFifteenHz.running)
|
||||||
|
{
|
||||||
|
animationFifteenHz.stop();
|
||||||
|
flashingImageFifteenHz.opacity = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function clearHit()
|
||||||
|
{
|
||||||
|
if(hitIndex === 0)
|
||||||
|
{
|
||||||
|
ssvepTenHzTimer.stop();
|
||||||
|
imageTenHz.source = imageFilesTenHz[0];
|
||||||
|
}else if(hitIndex === 1)
|
||||||
|
{
|
||||||
|
ssvepTwelveHzTimer.stop();
|
||||||
|
imageTwelveHz.source = imageFilesTwelevHz[0];
|
||||||
|
}else if(hitIndex === 2)
|
||||||
|
{
|
||||||
|
ssvepFifteenHzTimer.stop();
|
||||||
|
imageFifteenHz.source = imageFilesFifteenHz[0];
|
||||||
|
}
|
||||||
|
if(hitTimer.running)
|
||||||
|
{
|
||||||
|
hitTimer.stop();
|
||||||
|
}
|
||||||
|
hitIndex = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
Timer {
|
||||||
|
id: hitTimer
|
||||||
|
interval: responseTime;
|
||||||
|
repeat: false
|
||||||
|
onTriggered: {
|
||||||
|
clearHit();
|
||||||
|
startStimulate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ssvepHit(index)
|
||||||
|
{
|
||||||
|
if(!bStimulate)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(hitIndex !== -1)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(index === 0)
|
||||||
|
{
|
||||||
|
ssvepTenHzTimer.start();
|
||||||
|
hitTimer.start();
|
||||||
|
}else if(index === 1)
|
||||||
|
{
|
||||||
|
ssvepTwelveHzTimer.start();
|
||||||
|
hitTimer.start();
|
||||||
|
}else if(index === 2)
|
||||||
|
{
|
||||||
|
ssvepFifteenHzTimer.start();
|
||||||
|
hitTimer.start();
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
hitIndex = index;
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle{
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: 42
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: 100
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: 100
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.bottomMargin: 178
|
||||||
|
Row
|
||||||
|
{
|
||||||
|
anchors.centerIn: parent
|
||||||
|
spacing: 80
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
id:ssvepTenHz
|
||||||
|
width: 520;
|
||||||
|
height: 760;
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
width: 520;
|
||||||
|
height: 450;
|
||||||
|
anchors.top: parent.top
|
||||||
|
color:"#F9FAFD";
|
||||||
|
border.width: 1
|
||||||
|
border.color: "#ADCFDD"
|
||||||
|
radius: 20;
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
id:tenHzHit
|
||||||
|
visible: ssvepTenHzTimer.running
|
||||||
|
width: 100;
|
||||||
|
height: 36;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 40;
|
||||||
|
anchors.right: parent.right;
|
||||||
|
anchors.rightMargin: 40;
|
||||||
|
color:Qt.rgba(52,196,163,0.1);
|
||||||
|
border.width: 1;
|
||||||
|
border.color: "#34C4A3";
|
||||||
|
radius: 18;
|
||||||
|
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
width: 14;
|
||||||
|
height: 14;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 11;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 14;
|
||||||
|
color:"#34C4A3";
|
||||||
|
border.width: 1;
|
||||||
|
border.color: "#34C4A3";
|
||||||
|
radius: 7;
|
||||||
|
}
|
||||||
|
Text {
|
||||||
|
text: qsTr("训练中")
|
||||||
|
width: 72;
|
||||||
|
height: 26;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 4;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 32;
|
||||||
|
color: "#10275A";
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 18
|
||||||
|
font.family: "Medium"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: qsTr("上肢训练")
|
||||||
|
width: 144;
|
||||||
|
height: 46;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 34;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 40;
|
||||||
|
color: "#10275A";
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 36;
|
||||||
|
font.family: "Medium";
|
||||||
|
font.bold: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: qsTr("Upper Limbs Training")
|
||||||
|
width: 194;
|
||||||
|
height: 28;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 84;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 40;
|
||||||
|
color: "#8586A9";
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 20;
|
||||||
|
font.family: "Medium";
|
||||||
|
}
|
||||||
|
Image {
|
||||||
|
id: flashingImageTenHz
|
||||||
|
width: 238;
|
||||||
|
height: 238;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 162;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 141;
|
||||||
|
source: "qrc:/DependFile/Source/brainTrain/vision_img_board.png"
|
||||||
|
opacity: 1
|
||||||
|
SequentialAnimation on opacity {
|
||||||
|
id: animationTenHz
|
||||||
|
running: false;
|
||||||
|
loops: Animation.Infinite
|
||||||
|
NumberAnimation { to: 0; duration: 50 }
|
||||||
|
NumberAnimation { to: 1; duration: 50 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Item {
|
||||||
|
width: 520;
|
||||||
|
height: 280;
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
Timer {
|
||||||
|
id: ssvepTenHzTimer
|
||||||
|
interval: 300;
|
||||||
|
repeat: true
|
||||||
|
onTriggered: {
|
||||||
|
currentIndexTenHz = (currentIndexTenHz + 1) % imageFilesTenHz.length;
|
||||||
|
imageTenHz.source = imageFilesTenHz[currentIndexTenHz];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Image {
|
||||||
|
id: imageTenHz
|
||||||
|
anchors.centerIn: parent
|
||||||
|
source: imageFilesTenHz[0]
|
||||||
|
}
|
||||||
|
Image {
|
||||||
|
visible: !ssvepTenHzTimer.running
|
||||||
|
anchors.centerIn: parent
|
||||||
|
source: "qrc:/DependFile/Source/brainTrain/vision_btn_start.png"
|
||||||
|
z:1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
id:ssvepTwelveHz
|
||||||
|
width: 520;
|
||||||
|
height: 760;
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
width: 520;
|
||||||
|
height: 450;
|
||||||
|
anchors.top: parent.top
|
||||||
|
color:"#F9FAFD";
|
||||||
|
border.width: 1
|
||||||
|
border.color: "#ADCFDD"
|
||||||
|
radius: 20;
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
id:twelveHzHit
|
||||||
|
visible: ssvepTwelveHzTimer.running
|
||||||
|
width: 100;
|
||||||
|
height: 36;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 40;
|
||||||
|
anchors.right: parent.right;
|
||||||
|
anchors.rightMargin: 40;
|
||||||
|
color:Qt.rgba(52,196,163,0.1);
|
||||||
|
border.width: 1;
|
||||||
|
border.color: "#34C4A3";
|
||||||
|
radius: 18;
|
||||||
|
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
width: 14;
|
||||||
|
height: 14;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 11;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 14;
|
||||||
|
color:"#34C4A3";
|
||||||
|
border.width: 1;
|
||||||
|
border.color: "#34C4A3";
|
||||||
|
radius: 7;
|
||||||
|
}
|
||||||
|
Text {
|
||||||
|
text: qsTr("训练中")
|
||||||
|
width: 72;
|
||||||
|
height: 26;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 4;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 32;
|
||||||
|
color: "#10275A";
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 18
|
||||||
|
font.family: "Medium"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: qsTr("下肢训练")
|
||||||
|
width: 144;
|
||||||
|
height: 46;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 34;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 40;
|
||||||
|
color: "#10275A";
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 36;
|
||||||
|
font.family: "Medium";
|
||||||
|
font.bold: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: qsTr("Lower Limbs Training")
|
||||||
|
width: 194;
|
||||||
|
height: 28;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 84;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 40;
|
||||||
|
color: "#8586A9";
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 20;
|
||||||
|
font.family: "Medium";
|
||||||
|
}
|
||||||
|
Image {
|
||||||
|
id: flashingImageTwelveHz
|
||||||
|
width: 238;
|
||||||
|
height: 238;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 162;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 141;
|
||||||
|
source: "qrc:/DependFile/Source/brainTrain/vision_img_board.png"
|
||||||
|
opacity: 1
|
||||||
|
SequentialAnimation on opacity {
|
||||||
|
id: animationTwelveHz
|
||||||
|
running: false;
|
||||||
|
loops: Animation.Infinite
|
||||||
|
NumberAnimation { to: 0; duration: 42 }
|
||||||
|
NumberAnimation { to: 1; duration: 42 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Item {
|
||||||
|
width: 520;
|
||||||
|
height: 280;
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
Timer {
|
||||||
|
id: ssvepTwelveHzTimer
|
||||||
|
interval: 30;
|
||||||
|
repeat: true
|
||||||
|
onTriggered: {
|
||||||
|
currentIndexTwelevHz = (currentIndexTwelevHz + 1) % imageFilesTwelevHz.length;
|
||||||
|
imageTwelveHz.source = imageFilesTwelevHz[currentIndexTwelevHz];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Image {
|
||||||
|
id: imageTwelveHz
|
||||||
|
anchors.centerIn: parent
|
||||||
|
source: imageFilesTwelevHz[0]
|
||||||
|
}
|
||||||
|
Image {
|
||||||
|
visible: !ssvepTwelveHzTimer.running
|
||||||
|
anchors.centerIn: parent
|
||||||
|
source: "qrc:/DependFile/Source/brainTrain/vision_btn_start.png"
|
||||||
|
z:1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
id:ssvepFifteenHz
|
||||||
|
width: 520;
|
||||||
|
height: 760;
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
width: 520;
|
||||||
|
height: 450;
|
||||||
|
anchors.top: parent.top
|
||||||
|
color:"#F9FAFD";
|
||||||
|
border.width: 1
|
||||||
|
border.color: "#ADCFDD"
|
||||||
|
radius: 20;
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
id:fifteenHzHit
|
||||||
|
visible: ssvepFifteenHzTimer.running
|
||||||
|
width: 100;
|
||||||
|
height: 36;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 40;
|
||||||
|
anchors.right: parent.right;
|
||||||
|
anchors.rightMargin: 40;
|
||||||
|
color:Qt.rgba(52,196,163,0.1);
|
||||||
|
border.width: 1;
|
||||||
|
border.color: "#34C4A3";
|
||||||
|
radius: 18;
|
||||||
|
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
width: 14;
|
||||||
|
height: 14;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 11;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 14;
|
||||||
|
color:"#34C4A3";
|
||||||
|
border.width: 1;
|
||||||
|
border.color: "#34C4A3";
|
||||||
|
radius: 7;
|
||||||
|
}
|
||||||
|
Text {
|
||||||
|
text: qsTr("训练中")
|
||||||
|
width: 72;
|
||||||
|
height: 26;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 4;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 32;
|
||||||
|
color: "#10275A";
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 18
|
||||||
|
font.family: "Medium"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: qsTr("上下肢训练")
|
||||||
|
width: 144;
|
||||||
|
height: 46;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 34;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 40;
|
||||||
|
color: "#10275A";
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 36;
|
||||||
|
font.family: "Medium";
|
||||||
|
font.bold: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: qsTr("Upper and Lower Limb")
|
||||||
|
width: 194;
|
||||||
|
height: 28;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 84;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 40;
|
||||||
|
color: "#8586A9";
|
||||||
|
horizontalAlignment: Text.AlignLeft
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 20;
|
||||||
|
font.family: "Medium";
|
||||||
|
}
|
||||||
|
Image {
|
||||||
|
id: flashingImageFifteenHz
|
||||||
|
width: 238;
|
||||||
|
height: 238;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 162;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 141;
|
||||||
|
source: "qrc:/DependFile/Source/brainTrain/vision_img_board.png"
|
||||||
|
opacity: 1
|
||||||
|
SequentialAnimation on opacity {
|
||||||
|
id: animationFifteenHz
|
||||||
|
running: false;
|
||||||
|
loops: Animation.Infinite
|
||||||
|
NumberAnimation { to: 0; duration: 33 }
|
||||||
|
NumberAnimation { to: 1; duration: 33 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Item {
|
||||||
|
width: 520;
|
||||||
|
height: 280;
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
Timer {
|
||||||
|
id: ssvepFifteenHzTimer
|
||||||
|
interval: 30;
|
||||||
|
repeat: true
|
||||||
|
onTriggered: {
|
||||||
|
currentIndexFifteenHz = (currentIndexFifteenHz + 1) % imageFilesFifteenHz.length;
|
||||||
|
imageFifteenHz.source = imageFilesFifteenHz[currentIndexFifteenHz];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Image {
|
||||||
|
id: imageFifteenHz
|
||||||
|
anchors.centerIn: parent
|
||||||
|
source: imageFilesFifteenHz[0]
|
||||||
|
}
|
||||||
|
Image {
|
||||||
|
visible: !ssvepFifteenHzTimer.running
|
||||||
|
anchors.centerIn: parent
|
||||||
|
source: "qrc:/DependFile/Source/brainTrain/vision_btn_start.png"
|
||||||
|
z:1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
width: 286;
|
||||||
|
height: 88;
|
||||||
|
anchors.bottom: parent.bottom;
|
||||||
|
anchors.bottomMargin: 60;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 817;
|
||||||
|
color:"#41B962";
|
||||||
|
border.width: 1
|
||||||
|
border.color: "#41B962"
|
||||||
|
radius: 10;
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id:stimulateText
|
||||||
|
text: qsTr("开始训练")
|
||||||
|
width: 144;
|
||||||
|
height: 51;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 18;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 71;
|
||||||
|
color: "#FFFFFF";
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 36;
|
||||||
|
font.family: "Medium";
|
||||||
|
}
|
||||||
|
MouseArea
|
||||||
|
{
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
if(bStimulate)
|
||||||
|
{
|
||||||
|
stimulateText.text = "继续";
|
||||||
|
stopStimulate();
|
||||||
|
clearHit();
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
stimulateText.text = "暂停";
|
||||||
|
startStimulate();
|
||||||
|
}
|
||||||
|
bStimulate = !bStimulate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
width: 86;
|
||||||
|
height: 88;
|
||||||
|
visible: bTest
|
||||||
|
anchors.bottom: parent.bottom;
|
||||||
|
anchors.bottomMargin: 60;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 1200;
|
||||||
|
color:"#41B962";
|
||||||
|
border.width: 1
|
||||||
|
border.color: "#41B962"
|
||||||
|
radius: 10;
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: qsTr("0")
|
||||||
|
width: 86;
|
||||||
|
height: 51;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 18;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 0;
|
||||||
|
color: "#FFFFFF";
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 36;
|
||||||
|
font.family: "Medium";
|
||||||
|
}
|
||||||
|
MouseArea
|
||||||
|
{
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
ssvepHit(0);
|
||||||
|
stopStimulate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
width: 86;
|
||||||
|
height: 88;
|
||||||
|
visible: bTest
|
||||||
|
anchors.bottom: parent.bottom;
|
||||||
|
anchors.bottomMargin: 60;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 1300;
|
||||||
|
color:"#41B962";
|
||||||
|
border.width: 1
|
||||||
|
border.color: "#41B962"
|
||||||
|
radius: 10;
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: qsTr("1")
|
||||||
|
width: 86;
|
||||||
|
height: 51;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 18;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 0;
|
||||||
|
color: "#FFFFFF";
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 36;
|
||||||
|
font.family: "Medium";
|
||||||
|
}
|
||||||
|
MouseArea
|
||||||
|
{
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
ssvepHit(1);
|
||||||
|
stopStimulate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
width: 86;
|
||||||
|
height: 88;
|
||||||
|
visible: bTest
|
||||||
|
anchors.bottom: parent.bottom;
|
||||||
|
anchors.bottomMargin: 60;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 1400;
|
||||||
|
color:"#41B962";
|
||||||
|
border.width: 1
|
||||||
|
border.color: "#41B962"
|
||||||
|
radius: 10;
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: qsTr("2")
|
||||||
|
width: 86;
|
||||||
|
height: 51;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 18;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 0;
|
||||||
|
color: "#FFFFFF";
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font.pixelSize: 36;
|
||||||
|
font.family: "Medium";
|
||||||
|
}
|
||||||
|
MouseArea
|
||||||
|
{
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
ssvepHit(2);
|
||||||
|
stopStimulate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 218 KiB |
After Width: | Height: | Size: 99 KiB |
After Width: | Height: | Size: 201 KiB |
After Width: | Height: | Size: 208 KiB |
After Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 14 KiB |
141
ZBD_IIIDL_S_Project/release/BCILinker/SunnyLinkTool/config.ini
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
[system]
|
||||||
|
threshold_value = -0.023
|
||||||
|
|
||||||
|
[Layout]
|
||||||
|
main_splitter_left = 998
|
||||||
|
main_splitter_right = 916
|
||||||
|
right_splitter_left = 215
|
||||||
|
right_splitter_right = 770
|
||||||
|
left_splitter_left = 493
|
||||||
|
left_splitter_right = 492
|
||||||
|
|
||||||
|
[channel]
|
||||||
|
channel_x_fp1 = 419
|
||||||
|
channel_y_fp1 = 124
|
||||||
|
channel_x_fc1 = 439
|
||||||
|
channel_y_fc1 = 296
|
||||||
|
channel_x_fp2 = 576
|
||||||
|
channel_y_fp2 = 124
|
||||||
|
channel_x_fc2 = 556
|
||||||
|
channel_y_fc2 = 299
|
||||||
|
channel_x_f3 = 397
|
||||||
|
channel_y_f3 = 231
|
||||||
|
channel_x_cp1 = 439
|
||||||
|
channel_y_cp1 = 426
|
||||||
|
channel_x_f4 = 601
|
||||||
|
channel_y_f4 = 232
|
||||||
|
channel_x_cp2 = 559
|
||||||
|
channel_y_cp2 = 425
|
||||||
|
channel_x_fc3 = 379
|
||||||
|
channel_y_fc3 = 295
|
||||||
|
channel_x_af4 = 571
|
||||||
|
channel_y_af4 = 171
|
||||||
|
channel_x_po8 = 645
|
||||||
|
channel_y_po8 = 564
|
||||||
|
channel_x_fpz = 499
|
||||||
|
channel_y_fpz = 112
|
||||||
|
channel_x_fcz = 499
|
||||||
|
channel_y_fcz = 300
|
||||||
|
channel_x_poz = 497
|
||||||
|
channel_y_poz = 555
|
||||||
|
channel_x_po5 = 387
|
||||||
|
channel_y_po5 = 551
|
||||||
|
channel_x_po6 = 611
|
||||||
|
channel_y_po6 = 551
|
||||||
|
channel_x_c3 = 373
|
||||||
|
channel_y_c3 = 363
|
||||||
|
channel_x_fc5 = 319
|
||||||
|
channel_y_fc5 = 292
|
||||||
|
channel_x_c4 = 620
|
||||||
|
channel_y_c4 = 363
|
||||||
|
channel_x_fc6 = 676
|
||||||
|
channel_y_fc6 = 288
|
||||||
|
channel_x_p3 = 398
|
||||||
|
channel_y_p3 = 491
|
||||||
|
channel_x_cp5 = 322
|
||||||
|
channel_y_cp5 = 430
|
||||||
|
channel_x_p4 = 600
|
||||||
|
channel_y_p4 = 489
|
||||||
|
channel_x_cp6 = 678
|
||||||
|
channel_y_cp6 = 430
|
||||||
|
channel_x_c5 = 315
|
||||||
|
channel_y_c5 = 359
|
||||||
|
channel_x_f6 = 650
|
||||||
|
channel_y_f6 = 223
|
||||||
|
channel_x_f5 = 349
|
||||||
|
channel_y_f5 = 224
|
||||||
|
channel_x_po4 = 570
|
||||||
|
channel_y_po4 = 553
|
||||||
|
channel_x_po3 = 425
|
||||||
|
channel_y_po3 = 548
|
||||||
|
channel_x_cp4 = 619
|
||||||
|
channel_y_cp4 = 424
|
||||||
|
channel_x_cp3 = 381
|
||||||
|
channel_y_cp3 = 426
|
||||||
|
channel_x_fc4 = 619
|
||||||
|
channel_y_fc4 = 295
|
||||||
|
channel_x_o1 = 423
|
||||||
|
channel_y_o1 = 598
|
||||||
|
channel_x_ft9 = 252
|
||||||
|
channel_y_ft9 = 168
|
||||||
|
channel_x_o2 = 576
|
||||||
|
channel_y_o2 = 597
|
||||||
|
channel_x_ft10 = 798
|
||||||
|
channel_y_ft10 = 277
|
||||||
|
channel_x_f7 = 295
|
||||||
|
channel_y_f7 = 214
|
||||||
|
channel_x_tp9 = 202
|
||||||
|
channel_y_tp9 = 445
|
||||||
|
channel_x_f8 = 701
|
||||||
|
channel_y_f8 = 215
|
||||||
|
channel_x_t7 = 252
|
||||||
|
channel_y_t7 = 362
|
||||||
|
channel_x_tp7 = 261
|
||||||
|
channel_y_tp7 = 436
|
||||||
|
channel_x_ft8 = 734
|
||||||
|
channel_y_ft8 = 283
|
||||||
|
channel_x_ft7 = 264
|
||||||
|
channel_y_ft7 = 286
|
||||||
|
channel_x_af8 = 645
|
||||||
|
channel_y_af8 = 159
|
||||||
|
channel_x_af7 = 351
|
||||||
|
channel_y_af7 = 160
|
||||||
|
channel_x_p6 = 652
|
||||||
|
channel_y_p6 = 499
|
||||||
|
channel_x_p5 = 348
|
||||||
|
channel_y_p5 = 499
|
||||||
|
channel_x_c6 = 683
|
||||||
|
channel_y_c6 = 362
|
||||||
|
channel_x_f1 = 447
|
||||||
|
channel_y_f1 = 236
|
||||||
|
channel_x_t8 = 745
|
||||||
|
channel_y_t8 = 361
|
||||||
|
channel_x_f2 = 549
|
||||||
|
channel_y_f2 = 235
|
||||||
|
channel_x_p7 = 300
|
||||||
|
channel_y_p7 = 505
|
||||||
|
channel_x_c1 = 435
|
||||||
|
channel_y_c1 = 363
|
||||||
|
channel_x_p8 = 698
|
||||||
|
channel_y_p8 = 508
|
||||||
|
channel_x_c2 = 559
|
||||||
|
channel_y_c2 = 359
|
||||||
|
channel_x_fz = 499
|
||||||
|
channel_y_fz = 238
|
||||||
|
channel_x_po7 = 354
|
||||||
|
channel_y_po7 = 562
|
||||||
|
channel_x_tp8 = 735
|
||||||
|
channel_y_tp8 = 438
|
||||||
|
channel_x_oz = 498
|
||||||
|
channel_y_oz = 609
|
||||||
|
channel_x_af3 = 428
|
||||||
|
channel_y_af3 = 170
|
||||||
|
channel_x_pz = 501
|
||||||
|
channel_y_pz = 486
|
||||||
|
channel_x_p2 = 551
|
||||||
|
channel_y_p2 = 483
|
||||||
|
channel_x_cz = 499
|
||||||
|
channel_y_cz = 361
|
||||||
|
channel_x_p1 = 448
|
||||||
|
channel_y_p1 = 488
|
||||||
|
|
After Width: | Height: | Size: 164 KiB |