cdbbed3fd0
- Implemented QrUnlockApp class with methods for lifecycle management (begin, start, update, stop, handleEvent) and snapshot retrieval. - Created header file for QrUnlockApp with necessary method declarations and private members. - Added Yamale schema for scenario template to define prompt input and optional firmware snapshot.
445 lines
12 KiB
JSON
445 lines
12 KiB
JSON
{
|
|
"id": "DEFAULT",
|
|
"scenario": "DEFAULT",
|
|
"version": 2,
|
|
"initial_step": "SCENE_U_SON_PROTO",
|
|
"hardware_events": {
|
|
"button_short_1": "BTN_NEXT",
|
|
"button_short_2": "BTN_NEXT",
|
|
"button_short_3": "BTN_NEXT",
|
|
"button_short_4": "BTN_NEXT",
|
|
"button_short_5": "BTN_NEXT",
|
|
"button_long_3": "FORCE_ETAPE2",
|
|
"button_long_4": "FORCE_DONE",
|
|
"espnow_event": "ESPNOW:<payload>"
|
|
},
|
|
"app_bindings": [
|
|
"APP_AUDIO",
|
|
"APP_SCREEN",
|
|
"APP_GATE",
|
|
"APP_WIFI",
|
|
"APP_ESPNOW",
|
|
"APP_QR_UNLOCK"
|
|
],
|
|
"actions_catalog": [
|
|
"ACTION_TRACE_STEP",
|
|
"ACTION_HW_LED_ALERT",
|
|
"ACTION_QUEUE_SONAR",
|
|
"ACTION_ESP_NOW_SEND_ETAPE1",
|
|
"ACTION_ESP_NOW_SEND_ETAPE2",
|
|
"ACTION_QR_CODE_SCANNER_START",
|
|
"ACTION_WINNER",
|
|
"ACTION_SET_BOOT_MEDIA_MANAGER"
|
|
],
|
|
"steps": [
|
|
{
|
|
"id": "SCENE_U_SON_PROTO",
|
|
"screen_scene_id": "SCENE_U_SON_PROTO",
|
|
"audio_pack_id": "PACK_BOOT_RADIO",
|
|
"action_ids": [
|
|
"ACTION_TRACE_STEP",
|
|
"ACTION_HW_LED_ALERT"
|
|
],
|
|
"transitions": [
|
|
{
|
|
"id": "TR_SCENE_U_SON_PROTO_1",
|
|
"trigger": "on_event",
|
|
"event_type": "audio_done",
|
|
"event_name": "AUDIO_DONE",
|
|
"target_step_id": "SCENE_U_SON_PROTO",
|
|
"after_ms": 0,
|
|
"priority": 80
|
|
},
|
|
{
|
|
"id": "TR_SCENE_U_SON_PROTO_2",
|
|
"trigger": "on_event",
|
|
"event_type": "button",
|
|
"event_name": "ANY",
|
|
"target_step_id": "SCENE_LA_DETECTOR",
|
|
"after_ms": 0,
|
|
"priority": 120
|
|
},
|
|
{
|
|
"id": "TR_SCENE_U_SON_PROTO_3",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "FORCE_ETAPE2",
|
|
"target_step_id": "SCENE_LA_DETECTOR",
|
|
"after_ms": 0,
|
|
"priority": 140
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "SCENE_LA_DETECTOR",
|
|
"screen_scene_id": "SCENE_LA_DETECTOR",
|
|
"action_ids": [
|
|
"ACTION_TRACE_STEP",
|
|
"ACTION_QUEUE_SONAR"
|
|
],
|
|
"transitions": [
|
|
{
|
|
"id": "TR_SCENE_LA_DETECTOR_1",
|
|
"trigger": "on_event",
|
|
"event_type": "timer",
|
|
"event_name": "ETAPE2_DUE",
|
|
"target_step_id": "SCENE_U_SON_PROTO",
|
|
"after_ms": 0,
|
|
"priority": 100
|
|
},
|
|
{
|
|
"id": "TR_SCENE_LA_DETECTOR_2",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "BTN_NEXT",
|
|
"target_step_id": "RTC_ESP_ETAPE1",
|
|
"after_ms": 0,
|
|
"priority": 110
|
|
},
|
|
{
|
|
"id": "TR_SCENE_LA_DETECTOR_3",
|
|
"trigger": "on_event",
|
|
"event_type": "unlock",
|
|
"event_name": "UNLOCK",
|
|
"target_step_id": "RTC_ESP_ETAPE1",
|
|
"after_ms": 0,
|
|
"priority": 115
|
|
},
|
|
{
|
|
"id": "TR_SCENE_LA_DETECTOR_4",
|
|
"trigger": "on_event",
|
|
"event_type": "action",
|
|
"event_name": "ACTION_FORCE_ETAPE2",
|
|
"target_step_id": "RTC_ESP_ETAPE1",
|
|
"after_ms": 0,
|
|
"priority": 120
|
|
},
|
|
{
|
|
"id": "TR_SCENE_LA_DETECTOR_5",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "FORCE_WIN_ETAPE1",
|
|
"target_step_id": "RTC_ESP_ETAPE1",
|
|
"after_ms": 0,
|
|
"priority": 130
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "RTC_ESP_ETAPE1",
|
|
"screen_scene_id": "SCENE_WIN_ETAPE1",
|
|
"audio_pack_id": "PACK_CONFIRM_WIN_ETAPE1",
|
|
"action_ids": [
|
|
"ACTION_TRACE_STEP",
|
|
"ACTION_HW_LED_ALERT",
|
|
"ACTION_ESP_NOW_SEND_ETAPE1",
|
|
"ACTION_QUEUE_SONAR"
|
|
],
|
|
"transitions": [
|
|
{
|
|
"id": "TR_RTC_ESP_ETAPE1_1",
|
|
"trigger": "on_event",
|
|
"event_type": "espnow",
|
|
"event_name": "ACK_WIN1",
|
|
"target_step_id": "WIN_ETAPE1",
|
|
"after_ms": 0,
|
|
"priority": 130
|
|
},
|
|
{
|
|
"id": "TR_RTC_ESP_ETAPE1_2",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "FORCE_DONE",
|
|
"target_step_id": "WIN_ETAPE1",
|
|
"after_ms": 0,
|
|
"priority": 120
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "WIN_ETAPE1",
|
|
"screen_scene_id": "SCENE_WIN_ETAPE1",
|
|
"audio_pack_id": "PACK_WIN",
|
|
"action_ids": [
|
|
"ACTION_TRACE_STEP",
|
|
"ACTION_HW_LED_ALERT"
|
|
],
|
|
"transitions": [
|
|
{
|
|
"id": "TR_WIN_ETAPE1_1",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "BTN_NEXT",
|
|
"target_step_id": "STEP_WARNING",
|
|
"after_ms": 0,
|
|
"priority": 110
|
|
},
|
|
{
|
|
"id": "TR_WIN_ETAPE1_2",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "FORCE_DONE",
|
|
"target_step_id": "STEP_WARNING",
|
|
"after_ms": 0,
|
|
"priority": 120
|
|
},
|
|
{
|
|
"id": "TR_WIN_ETAPE1_3",
|
|
"trigger": "on_event",
|
|
"event_type": "espnow",
|
|
"event_name": "ACK_WARNING",
|
|
"target_step_id": "STEP_WARNING",
|
|
"after_ms": 0,
|
|
"priority": 130
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "STEP_WARNING",
|
|
"screen_scene_id": "SCENE_WARNING",
|
|
"audio_pack_id": "PACK_BOOT_RADIO",
|
|
"action_ids": [
|
|
"ACTION_TRACE_STEP",
|
|
"ACTION_HW_LED_ALERT"
|
|
],
|
|
"transitions": [
|
|
{
|
|
"id": "TR_STEP_WARNING_1",
|
|
"trigger": "on_event",
|
|
"event_type": "audio_done",
|
|
"event_name": "AUDIO_DONE",
|
|
"target_step_id": "STEP_WARNING",
|
|
"after_ms": 0,
|
|
"priority": 80
|
|
},
|
|
{
|
|
"id": "TR_STEP_WARNING_2",
|
|
"trigger": "on_event",
|
|
"event_type": "button",
|
|
"event_name": "ANY",
|
|
"target_step_id": "SCENE_LEFOU_DETECTOR",
|
|
"after_ms": 0,
|
|
"priority": 120
|
|
},
|
|
{
|
|
"id": "TR_STEP_WARNING_3",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "FORCE_ETAPE2",
|
|
"target_step_id": "SCENE_LEFOU_DETECTOR",
|
|
"after_ms": 0,
|
|
"priority": 140
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "SCENE_LEFOU_DETECTOR",
|
|
"screen_scene_id": "SCENE_LEFOU_DETECTOR",
|
|
"action_ids": [
|
|
"ACTION_TRACE_STEP",
|
|
"ACTION_QUEUE_SONAR"
|
|
],
|
|
"transitions": [
|
|
{
|
|
"id": "TR_SCENE_LEFOU_DETECTOR_1",
|
|
"trigger": "on_event",
|
|
"event_type": "timer",
|
|
"event_name": "ETAPE2_DUE",
|
|
"target_step_id": "STEP_WARNING",
|
|
"after_ms": 0,
|
|
"priority": 100
|
|
},
|
|
{
|
|
"id": "TR_SCENE_LEFOU_DETECTOR_2",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "BTN_NEXT",
|
|
"target_step_id": "RTC_ESP_ETAPE2",
|
|
"after_ms": 0,
|
|
"priority": 110
|
|
},
|
|
{
|
|
"id": "TR_SCENE_LEFOU_DETECTOR_3",
|
|
"trigger": "on_event",
|
|
"event_type": "unlock",
|
|
"event_name": "UNLOCK",
|
|
"target_step_id": "RTC_ESP_ETAPE2",
|
|
"after_ms": 0,
|
|
"priority": 115
|
|
},
|
|
{
|
|
"id": "TR_SCENE_LEFOU_DETECTOR_4",
|
|
"trigger": "on_event",
|
|
"event_type": "action",
|
|
"event_name": "ACTION_FORCE_ETAPE2",
|
|
"target_step_id": "RTC_ESP_ETAPE2",
|
|
"after_ms": 0,
|
|
"priority": 120
|
|
},
|
|
{
|
|
"id": "TR_SCENE_LEFOU_DETECTOR_5",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "FORCE_WIN_ETAPE2",
|
|
"target_step_id": "RTC_ESP_ETAPE2",
|
|
"after_ms": 0,
|
|
"priority": 130
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "RTC_ESP_ETAPE2",
|
|
"screen_scene_id": "SCENE_WIN_ETAPE2",
|
|
"audio_pack_id": "PACK_CONFIRM_WIN_ETAPE2",
|
|
"action_ids": [
|
|
"ACTION_TRACE_STEP",
|
|
"ACTION_HW_LED_ALERT",
|
|
"ACTION_ESP_NOW_SEND_ETAPE2",
|
|
"ACTION_QUEUE_SONAR"
|
|
],
|
|
"transitions": [
|
|
{
|
|
"id": "TR_RTC_ESP_ETAPE2_1",
|
|
"trigger": "on_event",
|
|
"event_type": "espnow",
|
|
"event_name": "ACK_WIN2",
|
|
"target_step_id": "SCENE_QR_DETECTOR",
|
|
"after_ms": 0,
|
|
"priority": 130
|
|
},
|
|
{
|
|
"id": "TR_RTC_ESP_ETAPE2_2",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "FORCE_DONE",
|
|
"target_step_id": "SCENE_QR_DETECTOR",
|
|
"after_ms": 0,
|
|
"priority": 120
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "SCENE_QR_DETECTOR",
|
|
"screen_scene_id": "SCENE_QR_DETECTOR",
|
|
"action_ids": [
|
|
"ACTION_TRACE_STEP",
|
|
"ACTION_QR_CODE_SCANNER_START"
|
|
],
|
|
"transitions": [
|
|
{
|
|
"id": "TR_SCENE_QR_DETECTOR_1",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "QR_OK",
|
|
"target_step_id": "SCENE_FINAL_WIN",
|
|
"after_ms": 0,
|
|
"priority": 140
|
|
},
|
|
{
|
|
"id": "TR_SCENE_QR_DETECTOR_2",
|
|
"trigger": "on_event",
|
|
"event_type": "unlock",
|
|
"event_name": "UNLOCK_QR",
|
|
"target_step_id": "SCENE_FINAL_WIN",
|
|
"after_ms": 0,
|
|
"priority": 150
|
|
},
|
|
{
|
|
"id": "TR_SCENE_QR_DETECTOR_3",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "BTN_NEXT",
|
|
"target_step_id": "SCENE_FINAL_WIN",
|
|
"after_ms": 0,
|
|
"priority": 110
|
|
},
|
|
{
|
|
"id": "TR_SCENE_QR_DETECTOR_4",
|
|
"trigger": "on_event",
|
|
"event_type": "action",
|
|
"event_name": "ACTION_FORCE_ETAPE2",
|
|
"target_step_id": "SCENE_FINAL_WIN",
|
|
"after_ms": 0,
|
|
"priority": 120
|
|
},
|
|
{
|
|
"id": "TR_SCENE_QR_DETECTOR_5",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "FORCE_WIN_ETAPE2",
|
|
"target_step_id": "SCENE_FINAL_WIN",
|
|
"after_ms": 0,
|
|
"priority": 130
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "SCENE_FINAL_WIN",
|
|
"screen_scene_id": "SCENE_FINAL_WIN",
|
|
"action_ids": [
|
|
"ACTION_TRACE_STEP",
|
|
"ACTION_WINNER"
|
|
],
|
|
"transitions": [
|
|
{
|
|
"id": "TR_SCENE_FINAL_WIN_1",
|
|
"trigger": "on_event",
|
|
"event_type": "timer",
|
|
"event_name": "WIN_DUE",
|
|
"target_step_id": "STEP_MEDIA_MANAGER",
|
|
"after_ms": 0,
|
|
"priority": 140
|
|
},
|
|
{
|
|
"id": "TR_SCENE_FINAL_WIN_2",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "BTN_NEXT",
|
|
"target_step_id": "STEP_MEDIA_MANAGER",
|
|
"after_ms": 0,
|
|
"priority": 110
|
|
},
|
|
{
|
|
"id": "TR_SCENE_FINAL_WIN_3",
|
|
"trigger": "on_event",
|
|
"event_type": "unlock",
|
|
"event_name": "UNLOCK",
|
|
"target_step_id": "STEP_MEDIA_MANAGER",
|
|
"after_ms": 0,
|
|
"priority": 120
|
|
},
|
|
{
|
|
"id": "TR_SCENE_FINAL_WIN_4",
|
|
"trigger": "on_event",
|
|
"event_type": "action",
|
|
"event_name": "FORCE_WIN_ETAPE2",
|
|
"target_step_id": "STEP_MEDIA_MANAGER",
|
|
"after_ms": 0,
|
|
"priority": 130
|
|
},
|
|
{
|
|
"id": "TR_SCENE_FINAL_WIN_5",
|
|
"trigger": "on_event",
|
|
"event_type": "serial",
|
|
"event_name": "FORCE_WIN_ETAPE2",
|
|
"target_step_id": "STEP_MEDIA_MANAGER",
|
|
"after_ms": 0,
|
|
"priority": 125
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "STEP_MEDIA_MANAGER",
|
|
"screen_scene_id": "SCENE_MEDIA_MANAGER",
|
|
"action_ids": [
|
|
"ACTION_TRACE_STEP",
|
|
"ACTION_SET_BOOT_MEDIA_MANAGER"
|
|
],
|
|
"mp3_gate_open": true
|
|
}
|
|
],
|
|
"source": "story_selector",
|
|
"screen_root": "/story/screens",
|
|
"audio_root": "/story/audio"
|
|
}
|