实训调整暂提

This commit is contained in:
fan 2024-05-20 14:21:03 +08:00
parent 852117022d
commit 5724f72185
2 changed files with 132 additions and 30 deletions

View File

@ -5,24 +5,101 @@ extends Node
## 场景描述 ## 场景描述
@export var trainingDesc: String = "列车关门作业,突发单个站台门未正常关闭。" @export var trainingDesc: String = "列车关门作业,突发单个站台门未正常关闭。"
var currentStep = [] var stepOperation = []
var handleStep = [{"stepName": "步骤一站务员用对讲机汇报值班员值班员上行2号门关门故障使用LCB关闭站台门。", "stepOperation": [],}, var handleStep = [
{"stepName": "步骤二:值班员回复:收到。", "stepOperation": []}, {
{"stepName": "步骤三站务员用LCB钥匙1号将故障门2号门的LCB转至“关门”位置。", "stepOperation": ["LCB2","LCB_Key1","confirmUseKey","LCB2RightRotate"]}, "stepName": "步骤一站务员手指上行2号门门头灯",
{"stepName": "步骤四站务员确认故障门关闭。站务员手指上行2号门门头灯和上行2号站台门。", "stepOperation": []}, "stepOperation": [],
{"stepName": "步骤五:站务员口呼:门头灯熄灭,关门成功。", "stepOperation": ["LCB3LeftRotate"]}, "next": true,
{"stepName": "步骤六:站务员口呼:故障门处置完毕。", "stepOperation": []}, "waitTime": 3,
{"stepName": "步骤七列车出清站台后站务员用LCB钥匙1号将故障门2号门的LCB转至“自动”位置取出钥匙。", "stepOperation": ["LCB2LeftRotate","removeKeyOfWindowLCB2"]}, "play": false,
{"stepName": "步骤八站务员用对讲机汇报值班员值班员上行2号门故障已处理完毕。", "stepOperation": []}, "notip": false,
{"stepName": "步骤九:值班员回复:收到。", "stepOperation": []}, "checkVoice": ""
},
{
"stepName": "步骤二站务员口呼上行2号门门头灯亮关门故障。",
"stepOperation": [],
"next": false,
"checkVoice": "上行2号门门头灯亮关门故障。",
"play": false,
"notip": false,
},
{
"stepName": "步骤三站务员用对讲机汇报值班员值班员上行2号门关门故障使用LCB关闭站台门。", "stepOperation": [],
"next": false,
"checkVoice": "值班员上行2号门关门故障使用LCB关闭站台门。",
"play": false,
"notip": false,
},
{
"stepName": "值班员回复:收到。",
"stepOperation": [],
"play": true,
"notip": true,
"next": false,
},
{
"stepName": "步骤四站务员用LCB钥匙1号将故障门2号门的LCB转至“关门”位置。",
"stepOperation": ["LCB2","LCB_Key1","confirmUseKey","LCB2RightRotate"],
"play": false,
"notip": false,
"next": false,
},
{
"stepName": "步骤五站务员确认故障门关闭。站务员手指上行2号门门头灯和上行2号站台门。", "stepOperation": [],
"next": true,
"waitTime": 3,
"play": false,
"notip": false,
},
{
"stepName": "步骤六:站务员口呼:门头灯熄灭,关门成功。",
"stepOperation": [],
"checkVoice": "门头灯熄灭,关门成功。",
"next": false,
"play": false,
"notip": false,
},
{
"stepName": "步骤七:站务员口呼:故障门处置完毕。",
"stepOperation": [],
"checkVoice":"故障门处置完毕",
"next": false,
"play": false,
"notip": false,
},
{
"stepName": "步骤八列车出清站台后站务员用LCB钥匙1号将故障门2号门的LCB转至“自动”位置取出钥匙。",
"stepOperation": ["LCB2LeftRotate","removeKeyOfWindowLCB2"],
"next": false,
"play": false,
"notip": false,
},
{
"stepName": "步骤九站务员用对讲机汇报值班员值班员上行2号门故障已处理完毕。",
"stepOperation": [],
"checkVoice":"值班员上行2号门故障已处理完毕。",
"next": false,
"play": false,
"notip": false,
},
{
"stepName": "值班员回复:收到。",
"stepOperation": [],
"play": true,
"notip": false,
"next": false,
},
] ]
var stepOperationIndex = 0
var stepIndex = 0 var stepIndex = 0
func _ready(): func _ready():
$TrainingDescDialog.title = trainingName $TrainingDescDialog.title = trainingName
$TrainingDescDialog.updateSceneDesc(trainingDesc) $TrainingDescDialog.updateSceneDesc(trainingDesc)
stepOperationIndex = 0
stepIndex = 0 stepIndex = 0
@ -45,38 +122,54 @@ func load_mp3(path):
sound.data = file.get_buffer(file.get_length()) sound.data = file.get_buffer(file.get_length())
return sound return sound
func nextStep():
if stepIndex < handleStep.size():
var step = handleStep[stepIndex]
stepIndex = stepIndex + 1
print(step,'2')
$StepTip.updateOperationTip(step.stepName)
if step.stepOperation.size() > 0:
initStepOperation()
if step.next == true:
$StepTimer.wait_time = 2
$StepTimer.one_shot = true
$StepTimer.connect("timeout", nextStep)
$StepTimer.start()
if step.checkVoice:
print('speech_record_check')
$VoiceCommunication.speech_record_check(step.checkVoice)
if step.play:
var sound = load_mp3("res://Assets/training_speech/sd.mp3")
await $VoiceCommunication.play_reply(sound)
nextStep()
func setOperationNodeAndTip():
$total.currenNeedClickNode = stepOperation[stepOperationIndex]
if $total.trainingMode == TotalScene.Training_Mode.Teach:
$TrainTip.setTrainingTip($total.allClickEquipmentInfo[stepOperation[stepOperationIndex]])
func initStepOperation():
stepOperation = handleStep[stepIndex].stepOperation
stepOperationIndex = 0
func _on_total_screen_door_close_confirm_signal(screenDoor): func _on_total_screen_door_close_confirm_signal(screenDoor):
if screenDoor.name == "screenDoor1": if screenDoor.name == "screenDoor1":
$StepTip.updateOperationTip(handleStep[0].stepName) nextStep()
#var sound = load_mp3("res://Assets/training_speech/gmgz/2hmgmgz.mp3") print('screenDoor')
#await $VoiceCommunication.play_reply(sound)
#$total.currenNeedClickNode = currentStep[stepIndex]
#if $total.trainingMode == TotalScene.Training_Mode.Teach:
#$TrainTip.setTrainingTip($total.allClickEquipmentInfo[currentStep[stepIndex]])
if screenDoor.name == "screenDoor2": if screenDoor.name == "screenDoor2":
var sound3 = load_mp3("res://Assets/training_speech/gmgz/mtdxm.mp3") var sound3 = load_mp3("res://Assets/training_speech/gmgz/mtdxm.mp3")
await $VoiceCommunication.play_reply(sound3) await $VoiceCommunication.play_reply(sound3)
$total.trainLeave() $total.trainLeave()
func _input(event):
if event is InputEventKey:
if event.pressed:
if event.keycode == KEY_SPACE: # 检查是否按下了空格键
$VoiceCommunication.speech_record_check(event.keycode)
func _on_total_current_click_check_signal(isCorrect): func _on_total_current_click_check_signal(isCorrect):
if isCorrect: if isCorrect:
stepIndex = stepIndex + 1 stepOperationIndex = stepOperationIndex + 1
$StepJudgment.hideError() $StepJudgment.hideError()
if stepIndex < currentStep.size(): if stepOperationIndex < stepOperation.size():
$total.currenNeedClickNode = currentStep[stepIndex] setOperationNodeAndTip()
if $total.trainingMode == TotalScene.Training_Mode.Teach:
$TrainTip.setTrainingTip($total.allClickEquipmentInfo[currentStep[stepIndex]])
else: else:
$TrainTip.setTrainingTip('') $TrainTip.setTrainingTip('')
nextStep()
else: else:
if $total.trainingMode != TotalScene.Training_Mode.Exam: if $total.trainingMode != TotalScene.Training_Mode.Exam:
$StepJudgment.showError() $StepJudgment.showError()
@ -93,3 +186,8 @@ func _on_confirm_dialog_two_cancel():
func _on_confirm_dialog_two_confirm(): func _on_confirm_dialog_two_confirm():
get_tree().paused = false get_tree().paused = false
get_tree().reload_current_scene() get_tree().reload_current_scene()
func _on_voice_communication_speech_recognition_successed() -> void:
print('111111111111')
nextStep()

View File

@ -12,7 +12,7 @@
[node name="TrainingCloseDoorFault" type="Node"] [node name="TrainingCloseDoorFault" type="Node"]
script = ExtResource("1_iggb0") script = ExtResource("1_iggb0")
trainingName = "上行头等亮,关门故障" trainingName = "站台单档滑动门关门故障处置"
[node name="TrainingDescDialog" parent="." instance=ExtResource("1_efkp6")] [node name="TrainingDescDialog" parent="." instance=ExtResource("1_efkp6")]
sceneDesc = "上行门头灯亮关门故障" sceneDesc = "上行门头灯亮关门故障"
@ -34,8 +34,12 @@ visible = false
[node name="StepTip" parent="." instance=ExtResource("9_3cm1b")] [node name="StepTip" parent="." instance=ExtResource("9_3cm1b")]
[node name="StepTimer" type="Timer" parent="."]
one_shot = true
[connection signal="StartTraining" from="TrainingDescDialog" to="." method="_on_training_desc_dialog_start_training"] [connection signal="StartTraining" from="TrainingDescDialog" to="." method="_on_training_desc_dialog_start_training"]
[connection signal="currentClickCheckSignal" from="total" to="." method="_on_total_current_click_check_signal"] [connection signal="currentClickCheckSignal" from="total" to="." method="_on_total_current_click_check_signal"]
[connection signal="screenDoorCloseConfirmSignal" from="total" to="." method="_on_total_screen_door_close_confirm_signal"] [connection signal="screenDoorCloseConfirmSignal" from="total" to="." method="_on_total_screen_door_close_confirm_signal"]
[connection signal="speech_recognition_successed" from="VoiceCommunication" to="." method="_on_voice_communication_speech_recognition_successed"]
[connection signal="two_cancel" from="ConfirmDialog" to="." method="_on_confirm_dialog_two_cancel"] [connection signal="two_cancel" from="ConfirmDialog" to="." method="_on_confirm_dialog_two_cancel"]
[connection signal="two_confirm" from="ConfirmDialog" to="." method="_on_confirm_dialog_two_confirm"] [connection signal="two_confirm" from="ConfirmDialog" to="." method="_on_confirm_dialog_two_confirm"]