Files
le-mystere-professeur-zacus/artifacts/qa-test/2026-03-01/runtime_prepare/runtime-default.diff
T

732 lines
19 KiB
Diff

--- DEFAULT.current.json
+++ DEFAULT.from_bundle.json
@@ -1,67 +1,112 @@
{
- "app_bindings": [
- {
- "app": "AUDIO_PACK",
- "config": null,
- "id": "APP_AUDIO"
+ "boot_policy": {
+ "persist_after_validation": true,
+ "rollback_command_required": true,
+ "startup_mode": "story"
+ },
+ "led_policy": {
+ "defaults": {
+ "led_auto": 1,
+ "rgb": "18/45/95",
+ "ws2812": 1
},
- {
- "app": "SCREEN_SCENE",
- "config": null,
- "id": "APP_SCREEN"
+ "scene_overrides": [
+ {
+ "rgb": "dynamic_tuner_or_off",
+ "scene_id": "SCENE_LA_DETECTOR"
+ }
+ ],
+ "strict_rgb": true
+ },
+ "media_hub": {
+ "enabled": true,
+ "entries": [
+ "SCENE_PHOTO_MANAGER",
+ "SCENE_MP3_PLAYER",
+ "SCENE_READY"
+ ],
+ "hub_scene_id": "SCENE_MEDIA_MANAGER"
+ },
+ "narrative_meta": {
+ "act_durations_minutes": {
+ "act_1": 45,
+ "act_2": 60
},
- {
- "app": "MP3_GATE",
- "config": null,
- "id": "APP_GATE"
- },
- {
- "app": "WIFI_STACK",
- "config": null,
- "id": "APP_WIFI"
- },
- {
- "app": "ESPNOW_STACK",
- "config": null,
- "id": "APP_ESPNOW"
- },
- {
- "app": "QR_UNLOCK_APP",
- "config": null,
- "id": "APP_QR_UNLOCK"
+ "prototype": "U-SON",
+ "qr_location": "Derriere le portrait (Salle des Archives)",
+ "zone4_piano": {
+ "anchor": "A on LA 440 Hz",
+ "code_word": "LEFOU",
+ "letters_random_order": true
}
- ],
- "debug_transition_bypass_enabled": false,
- "estimated_duration_s": 0,
- "id": "DEFAULT",
- "initial_step": "RTC_ESP_ETAPE1",
- "scenario": "DEFAULT",
- "steps": [
+ },
+ "qr_rule": {
+ "case_insensitive": true,
+ "enabled": true,
+ "expected_payload": "WIN",
+ "failure_event": "QR_INVALID",
+ "match_mode": "exact",
+ "scene_id": "SCENE_QR_DETECTOR",
+ "success_event": "UNLOCK_QR",
+ "timeout_event": "QR_TIMEOUT",
+ "timeout_seconds": 30
+ },
+ "scenario": {
+ "app_bindings": [
+ "APP_AUDIO",
+ "APP_SCREEN",
+ "APP_GATE",
+ "APP_WIFI",
+ "APP_ESPNOW",
+ "APP_SONAR",
+ "APP_SD",
+ "APP_CAMERA",
+ "APP_LED",
+ "APP_SERIAL",
+ "APP_TIMER",
+ "APP_UNLOCK",
+ "APP_QR",
+ "APP_INPUT",
+ "APP_LOG",
+ "APP_ACTION"
+ ],
+ "id": "DEFAULT",
+ "initial_step": "STEP_U_SON_PROTO",
+ "version": 2
+ },
+ "steps_runtime_order": [
{
"actions": [
"ACTION_TRACE_STEP",
"ACTION_HW_LED_ALERT"
],
- "apps": [
- "APP_AUDIO",
- "APP_SCREEN",
- "APP_GATE",
- "APP_WIFI",
- "APP_ESPNOW"
- ],
- "audio_pack_id": "",
- "mp3_gate_open": false,
+ "audio_pack_id": "PACK_BOOT_RADIO",
+ "led_policy": {
+ "animation": "random_one_blink",
+ "brightness": "random_bright",
+ "rgb": "random_color",
+ "ws2812_1": "on",
+ "ws2812_2": "on",
+ "ws2812_3": "on",
+ "ws2812_4": "on"
+ },
"screen_scene_id": "SCENE_U_SON_PROTO",
- "step_id": "SCENE_U_SON_PROTO",
+ "step_id": "STEP_U_SON_PROTO",
"transitions": [
{
- "after_ms": 0,
- "event_name": "ANY",
- "event_type": "button",
- "id": "TR_SCENE_U_SON_PROTO_2",
- "priority": 120,
- "target_step_id": "SCENE_LA_DETECTOR",
- "trigger": "on_event"
+ "channel": "audio_done",
+ "event": "loop",
+ "target": "STEP_U_SON_PROTO"
+ },
+ {
+ "channel": "BTN",
+ "event": "ANY",
+ "target": "STEP_LA_DETECTOR"
+ },
+ {
+ "channel": "serial",
+ "event": "FORCE_ETAPE2",
+ "target": "STEP_LA_DETECTOR"
}
]
},
@@ -70,25 +115,43 @@
"ACTION_TRACE_STEP",
"ACTION_QUEUE_SONAR"
],
- "apps": [
- "APP_SCREEN",
- "APP_GATE",
- "APP_WIFI",
- "APP_ESPNOW"
- ],
"audio_pack_id": "",
- "mp3_gate_open": false,
+ "led_policy": {
+ "animation": "dynamic_tuner",
+ "brightness": "100%",
+ "rgb": "random_color",
+ "ws2812_1": "on",
+ "ws2812_2": "on",
+ "ws2812_3": "on",
+ "ws2812_4": "on"
+ },
"screen_scene_id": "SCENE_LA_DETECTOR",
- "step_id": "SCENE_LA_DETECTOR",
+ "step_id": "STEP_LA_DETECTOR",
"transitions": [
{
- "after_ms": 0,
- "event_name": "BTN_NEXT",
- "event_type": "serial",
- "id": "TR_SCENE_LA_DETECTOR_2",
- "priority": 110,
- "target_step_id": "RTC_ESP_ETAPE1",
- "trigger": "on_event"
+ "channel": "timer",
+ "event": "ETAPE2_DUE",
+ "target": "STEP_U_SON_PROTO"
+ },
+ {
+ "channel": "serial",
+ "event": "BTN_NEXT",
+ "target": "STEP_RTC_ESP_ETAPE1"
+ },
+ {
+ "channel": "unlock",
+ "event": "UNLOCK",
+ "target": "STEP_RTC_ESP_ETAPE1"
+ },
+ {
+ "channel": "action",
+ "event": "ACTION_FORCE_ETAPE2",
+ "target": "STEP_RTC_ESP_ETAPE1"
+ },
+ {
+ "channel": "serial",
+ "event": "FORCE_WIN_ETAPE1",
+ "target": "STEP_RTC_ESP_ETAPE1"
}
]
},
@@ -96,29 +159,31 @@
"actions": [
"ACTION_TRACE_STEP",
"ACTION_HW_LED_ALERT",
- "ACTION_QUEUE_SONAR",
- "ACTION_ESP_NOW_WAITING"
+ "ACTION_ESP_NOW_SEND_ETAPE1",
+ "ACTION_QUEUE_SONAR"
],
- "apps": [
- "APP_AUDIO",
- "APP_SCREEN",
- "APP_GATE",
- "APP_WIFI",
- "APP_ESPNOW"
- ],
- "audio_pack_id": "",
- "mp3_gate_open": false,
- "screen_scene_id": "SCENE_WIN_ETAPE",
- "step_id": "RTC_ESP_ETAPE1",
+ "audio_pack_id": "PACK_CONFIRM_WIN_ETAPE1",
+ "led_policy": {
+ "animation": "breathing",
+ "brightness": "random_bright",
+ "rgb": "random_color",
+ "ws2812_1": "on",
+ "ws2812_2": "off",
+ "ws2812_3": "off",
+ "ws2812_4": "on"
+ },
+ "screen_scene_id": "SCENE_WIN_ETAPE1",
+ "step_id": "STEP_RTC_ESP_ETAPE1",
"transitions": [
{
- "after_ms": 0,
- "event_name": "ANY",
- "event_type": "button",
- "id": "TR_RTC_ESP_ETAPE1_BTN",
- "priority": 120,
- "target_step_id": "WIN_ETAPE1",
- "trigger": "on_event"
+ "channel": "esp_now",
+ "event": "ACK_WIN1",
+ "target": "STEP_WIN_ETAPE1"
+ },
+ {
+ "channel": "serial",
+ "event": "FORCE_DONE",
+ "target": "STEP_WIN_ETAPE1"
}
]
},
@@ -127,54 +192,33 @@
"ACTION_TRACE_STEP",
"ACTION_HW_LED_ALERT"
],
- "apps": [
- "APP_AUDIO",
- "APP_SCREEN",
- "APP_GATE",
- "APP_WIFI",
- "APP_ESPNOW"
- ],
"audio_pack_id": "PACK_WIN",
- "mp3_gate_open": false,
+ "led_policy": {
+ "animation": "K2000",
+ "brightness": "K2000",
+ "rgb": "red",
+ "ws2812_1": "on",
+ "ws2812_2": "off",
+ "ws2812_3": "off",
+ "ws2812_4": "on"
+ },
"screen_scene_id": "SCENE_WIN_ETAPE1",
- "step_id": "WIN_ETAPE1",
+ "step_id": "STEP_WIN_ETAPE1",
"transitions": [
{
- "after_ms": 60000,
- "event_name": "WIN_ETAPE1_TO_CREDIT",
- "event_type": "timer",
- "id": "TR_WIN_ETAPE1_TO_CREDIT",
- "priority": 100,
- "target_step_id": "SCENE_CREDIT",
- "trigger": "on_event"
- }
- ]
- },
- {
- "actions": [
- "ACTION_TRACE_STEP",
- "ACTION_HW_LED_ALERT"
- ],
- "apps": [
- "APP_AUDIO",
- "APP_SCREEN",
- "APP_GATE",
- "APP_WIFI",
- "APP_ESPNOW"
- ],
- "audio_pack_id": "",
- "mp3_gate_open": false,
- "screen_scene_id": "SCENE_CREDITS",
- "step_id": "SCENE_CREDIT",
- "transitions": [
+ "channel": "serial",
+ "event": "BTN_NEXT",
+ "target": "STEP_WARNING"
+ },
{
- "after_ms": 0,
- "event_name": "ANY",
- "event_type": "button",
- "id": "TR_SCENE_CREDIT_BTN",
- "priority": 120,
- "target_step_id": "STEP_WARNING",
- "trigger": "on_event"
+ "channel": "serial",
+ "event": "FORCE_DONE",
+ "target": "STEP_WARNING"
+ },
+ {
+ "channel": "esp_now",
+ "event": "ACK_WARNING",
+ "target": "STEP_WARNING"
}
]
},
@@ -183,26 +227,33 @@
"ACTION_TRACE_STEP",
"ACTION_HW_LED_ALERT"
],
- "apps": [
- "APP_AUDIO",
- "APP_SCREEN",
- "APP_GATE",
- "APP_WIFI",
- "APP_ESPNOW"
- ],
- "audio_pack_id": "",
- "mp3_gate_open": false,
+ "audio_pack_id": "PACK_BOOT_RADIO",
+ "led_policy": {
+ "animation": "blink_all",
+ "brightness": "100%",
+ "rgb": "red",
+ "ws2812_1": "on",
+ "ws2812_2": "on",
+ "ws2812_3": "on",
+ "ws2812_4": "on"
+ },
"screen_scene_id": "SCENE_WARNING",
"step_id": "STEP_WARNING",
"transitions": [
{
- "after_ms": 0,
- "event_name": "AUDIO_DONE",
- "event_type": "audio_done",
- "id": "TR_STEP_WARNING_1",
- "priority": 80,
- "target_step_id": "STEP_WARNING",
- "trigger": "on_event"
+ "channel": "audio_done",
+ "event": "loop",
+ "target": "STEP_WARNING"
+ },
+ {
+ "channel": "BTN",
+ "event": "ANY",
+ "target": "STEP_LEFOU_DETECTOR"
+ },
+ {
+ "channel": "serial",
+ "event": "FORCE_ETAPE2",
+ "target": "STEP_LEFOU_DETECTOR"
}
]
},
@@ -211,53 +262,43 @@
"ACTION_TRACE_STEP",
"ACTION_QUEUE_SONAR"
],
- "apps": [
- "APP_SCREEN",
- "APP_GATE",
- "APP_WIFI",
- "APP_ESPNOW"
- ],
"audio_pack_id": "",
- "mp3_gate_open": false,
+ "led_policy": {
+ "animation": "dynamic_tuner",
+ "brightness": "100%",
+ "rgb": "random_color",
+ "ws2812_1": "on",
+ "ws2812_2": "on",
+ "ws2812_3": "on",
+ "ws2812_4": "on"
+ },
"screen_scene_id": "SCENE_LEFOU_DETECTOR",
- "step_id": "SCENE_LEFOU_DETECTOR",
+ "step_id": "STEP_LEFOU_DETECTOR",
"transitions": [
{
- "after_ms": 0,
- "event_name": "ETAPE2_DUE",
- "event_type": "timer",
- "id": "TR_SCENE_LEFOU_DETECTOR_1",
- "priority": 100,
- "target_step_id": "STEP_WARNING",
- "trigger": "on_event"
+ "channel": "timer",
+ "event": "ETAPE2_DUE",
+ "target": "STEP_WARNING"
},
{
- "after_ms": 0,
- "event_name": "BTN_NEXT",
- "event_type": "serial",
- "id": "TR_SCENE_LEFOU_DETECTOR_2",
- "priority": 110,
- "target_step_id": "RTC_ESP_ETAPE2",
- "trigger": "on_event"
+ "channel": "serial",
+ "event": "BTN_NEXT",
+ "target": "STEP_RTC_ESP_ETAPE2"
},
{
- "after_ms": 0,
- "event_name": "UNLOCK",
- "event_type": "unlock",
- "id": "TR_SCENE_LEFOU_DETECTOR_3",
- "priority": 115,
- "target_step_id": "RTC_ESP_ETAPE2",
- "trigger": "on_event"
+ "channel": "unlock",
+ "event": "UNLOCK",
+ "target": "STEP_RTC_ESP_ETAPE2"
},
{
- "after_ms": 0,
- "debug_only": true,
- "event_name": "FORCE_WIN_ETAPE2",
- "event_type": "serial",
- "id": "TR_SCENE_LEFOU_DETECTOR_5",
- "priority": 130,
- "target_step_id": "RTC_ESP_ETAPE2",
- "trigger": "on_event"
+ "channel": "action",
+ "event": "ACTION_FORCE_ETAPE2",
+ "target": "STEP_RTC_ESP_ETAPE2"
+ },
+ {
+ "channel": "serial",
+ "event": "FORCE_WIN_ETAPE2",
+ "target": "STEP_RTC_ESP_ETAPE2"
}
]
},
@@ -268,92 +309,79 @@
"ACTION_ESP_NOW_SEND_ETAPE2",
"ACTION_QUEUE_SONAR"
],
- "apps": [
- "APP_AUDIO",
- "APP_SCREEN",
- "APP_GATE",
- "APP_WIFI",
- "APP_ESPNOW"
- ],
"audio_pack_id": "PACK_CONFIRM_WIN_ETAPE2",
- "mp3_gate_open": false,
+ "led_policy": {
+ "animation": "breathing",
+ "brightness": "random_bright",
+ "rgb": "random_color",
+ "ws2812_1": "on",
+ "ws2812_2": "off",
+ "ws2812_3": "off",
+ "ws2812_4": "on"
+ },
"screen_scene_id": "SCENE_WIN_ETAPE2",
- "step_id": "RTC_ESP_ETAPE2",
+ "step_id": "STEP_RTC_ESP_ETAPE2",
"transitions": [
{
- "after_ms": 0,
- "event_name": "ACK_WIN2",
- "event_type": "espnow",
- "id": "TR_RTC_ESP_ETAPE2_1",
- "priority": 130,
- "target_step_id": "SCENE_QR_DETECTOR",
- "trigger": "on_event"
+ "channel": "esp_now",
+ "event": "ACK_WIN2",
+ "target": "STEP_QR_DETECTOR"
},
{
- "after_ms": 0,
- "debug_only": true,
- "event_name": "FORCE_DONE",
- "event_type": "serial",
- "id": "TR_RTC_ESP_ETAPE2_2",
- "priority": 120,
- "target_step_id": "SCENE_QR_DETECTOR",
- "trigger": "on_event"
+ "channel": "serial",
+ "event": "FORCE_DONE",
+ "target": "STEP_QR_DETECTOR"
}
]
},
{
"actions": [
"ACTION_TRACE_STEP",
- "ACTION_QR_CODE_SCANNER_START"
+ "ACTION_QR_CODE_SCANNER_START",
+ "ACTION_QR_TIMEOUT_30S"
],
- "apps": [
- "APP_SCREEN",
- "APP_GATE",
- "APP_WIFI",
- "APP_ESPNOW",
- "APP_QR_UNLOCK"
- ],
"audio_pack_id": "",
- "mp3_gate_open": false,
+ "led_policy": {
+ "animation": "bargraph_qr_trigger",
+ "brightness": "bargraph",
+ "rgb": "bargraph_red_to_green",
+ "ws2812_1": "on",
+ "ws2812_2": "on",
+ "ws2812_3": "on",
+ "ws2812_4": "on"
+ },
"screen_scene_id": "SCENE_QR_DETECTOR",
- "step_id": "SCENE_QR_DETECTOR",
+ "step_id": "STEP_QR_DETECTOR",
"transitions": [
{
- "after_ms": 0,
- "event_name": "QR_OK",
- "event_type": "serial",
- "id": "TR_SCENE_QR_DETECTOR_1",
- "priority": 140,
- "target_step_id": "SCENE_FINAL_WIN",
- "trigger": "on_event"
+ "channel": "timer",
+ "event": "ETAPE2_DUE",
+ "target": "STEP_RTC_ESP_ETAPE2"
},
{
- "after_ms": 0,
- "event_name": "UNLOCK_QR",
- "event_type": "unlock",
- "id": "TR_SCENE_QR_DETECTOR_2",
- "priority": 150,
- "target_step_id": "SCENE_FINAL_WIN",
- "trigger": "on_event"
+ "channel": "event",
+ "event": "QR_TIMEOUT",
+ "target": "STEP_RTC_ESP_ETAPE2"
},
{
- "after_ms": 0,
- "event_name": "BTN_NEXT",
- "event_type": "serial",
- "id": "TR_SCENE_QR_DETECTOR_3",
- "priority": 110,
- "target_step_id": "SCENE_FINAL_WIN",
- "trigger": "on_event"
+ "channel": "serial",
+ "event": "BTN_NEXT",
+ "target": "STEP_FINAL_WIN"
},
{
- "after_ms": 0,
- "debug_only": true,
- "event_name": "FORCE_WIN_ETAPE2",
- "event_type": "serial",
- "id": "TR_SCENE_QR_DETECTOR_5",
- "priority": 130,
- "target_step_id": "SCENE_FINAL_WIN",
- "trigger": "on_event"
+ "channel": "unlock",
+ "event": "UNLOCK_QR",
+ "target": "STEP_FINAL_WIN"
+ },
+ {
+ "channel": "action",
+ "event": "ACTION_FORCE_ETAPE2",
+ "target": "STEP_FINAL_WIN"
+ },
+ {
+ "channel": "serial",
+ "event": "FORCE_WIN_ETAPE2",
+ "target": "STEP_FINAL_WIN"
}
]
},
@@ -362,73 +390,45 @@
"ACTION_TRACE_STEP",
"ACTION_WINNER"
],
- "apps": [
- "APP_SCREEN",
- "APP_GATE",
- "APP_WIFI",
- "APP_ESPNOW"
- ],
"audio_pack_id": "",
- "mp3_gate_open": false,
+ "led_policy": {
+ "animation": "blink_all_random",
+ "brightness": "100%",
+ "rgb": "random_color",
+ "ws2812_1": "on",
+ "ws2812_2": "on",
+ "ws2812_3": "on",
+ "ws2812_4": "on"
+ },
"screen_scene_id": "SCENE_FINAL_WIN",
- "step_id": "SCENE_FINAL_WIN",
+ "step_id": "STEP_FINAL_WIN",
"transitions": [
{
- "after_ms": 0,
- "event_name": "WIN_DUE",
- "event_type": "timer",
- "id": "TR_SCENE_FINAL_WIN_1",
- "priority": 140,
- "target_step_id": "STEP_MEDIA_MANAGER",
- "trigger": "on_event"
+ "channel": "timer",
+ "event": "WIN_DUE",
+ "target": "SCENE_MEDIA_MANAGER"
},
{
- "after_ms": 0,
- "event_name": "BTN_NEXT",
- "event_type": "serial",
- "id": "TR_SCENE_FINAL_WIN_2",
- "priority": 110,
- "target_step_id": "STEP_MEDIA_MANAGER",
- "trigger": "on_event"
+ "channel": "serial",
+ "event": "BTN_NEXT",
+ "target": "SCENE_MEDIA_MANAGER"
},
{
- "after_ms": 0,
- "event_name": "UNLOCK",
- "event_type": "unlock",
- "id": "TR_SCENE_FINAL_WIN_3",
- "priority": 120,
- "target_step_id": "STEP_MEDIA_MANAGER",
- "trigger": "on_event"
+ "channel": "unlock",
+ "event": "UNLOCK",
+ "target": "SCENE_MEDIA_MANAGER"
},
{
- "after_ms": 0,
- "debug_only": true,
- "event_name": "FORCE_WIN_ETAPE2",
- "event_type": "serial",
- "id": "TR_SCENE_FINAL_WIN_5",
- "priority": 125,
- "target_step_id": "STEP_MEDIA_MANAGER",
- "trigger": "on_event"
+ "channel": "action",
+ "event": "FORCE_WIN_ETAPE2",
+ "target": "SCENE_MEDIA_MANAGER"
+ },
+ {
+ "channel": "serial",
+ "event": "FORCE_WIN_ETAPE2",
+ "target": "SCENE_MEDIA_MANAGER"
}
]
- },
- {
- "actions": [
- "ACTION_TRACE_STEP",
- "ACTION_SET_BOOT_MEDIA_MANAGER"
- ],
- "apps": [
- "APP_SCREEN",
- "APP_GATE",
- "APP_WIFI",
- "APP_ESPNOW"
- ],
- "audio_pack_id": "",
- "mp3_gate_open": true,
- "screen_scene_id": "SCENE_MEDIA_MANAGER",
- "step_id": "STEP_MEDIA_MANAGER",
- "transitions": []
}
- ],
- "version": 2
+ ]
}