|
1 | | -{ |
2 | | - "artifact_kind": "frog_fir_document", |
3 | | - "artifact_version": "0.1-draft", |
4 | | - "fir_version": "0.1-draft", |
5 | | - "source_ref": { |
6 | | - "example_id": "05_bounded_ui_accumulator", |
7 | | - "path": "Examples/05_bounded_ui_accumulator/main.frog", |
8 | | - "spec_version": "0.1", |
9 | | - "entry_unit": "main" |
10 | | - }, |
11 | | - "identity_mapping": { |
12 | | - "unit_id": "main", |
13 | | - "source_nodes": [ |
14 | | - "ctrl_input_value", |
15 | | - "ctrl_input_ref", |
16 | | - "ind_result_ref", |
17 | | - "const_zero", |
18 | | - "const_five", |
19 | | - "const_ctrl_foreground_color", |
20 | | - "const_ind_foreground_color", |
21 | | - "write_ctrl_foreground_color", |
22 | | - "write_ind_foreground_color", |
23 | | - "loop_accumulate", |
24 | | - "ind_result_value", |
25 | | - "output_result" |
26 | | - ] |
27 | | - }, |
28 | | - "units": [ |
29 | | - { |
30 | | - "unit_id": "main", |
31 | | - "kind": "bounded_executable_ui_unit", |
32 | | - "public_interface": { |
33 | | - "inputs": [ |
34 | | - { |
35 | | - "id": "input_value", |
36 | | - "type": "u16", |
37 | | - "binding_origin": "widget.ctrl_input.value" |
38 | | - } |
39 | | - ], |
40 | | - "outputs": [ |
41 | | - { |
42 | | - "id": "result", |
43 | | - "type": "u16", |
44 | | - "binding_target": "interface.result" |
45 | | - } |
46 | | - ] |
47 | | - }, |
48 | | - "ui_surface": { |
49 | | - "package_refs": [ |
50 | | - "./ui/accumulator_panel.wfrog" |
51 | | - ], |
52 | | - "widgets": [ |
53 | | - { |
54 | | - "widget_id": "ctrl_input", |
55 | | - "role": "control", |
56 | | - "widget_class": "frog.widgets.numeric_control", |
57 | | - "value_type": "u16", |
58 | | - "value_mode": "widget_value", |
59 | | - "reference_mode": true |
60 | | - }, |
61 | | - { |
62 | | - "widget_id": "ind_result", |
63 | | - "role": "indicator", |
64 | | - "widget_class": "frog.widgets.numeric_indicator", |
65 | | - "value_type": "u16", |
66 | | - "value_mode": "widget_value", |
67 | | - "reference_mode": true |
68 | | - } |
69 | | - ], |
70 | | - "property_writes": [ |
71 | | - { |
72 | | - "widget_id": "ctrl_input", |
73 | | - "member": "foreground_color", |
74 | | - "value_type": "frog.color.rgba8", |
75 | | - "value": "#5B9BD5" |
76 | | - }, |
77 | | - { |
78 | | - "widget_id": "ind_result", |
79 | | - "member": "foreground_color", |
80 | | - "value_type": "frog.color.rgba8", |
81 | | - "value": "#70AD47" |
82 | | - } |
83 | | - ], |
84 | | - "indicator_bindings": [ |
85 | | - { |
86 | | - "widget_id": "ind_result", |
87 | | - "member": "value", |
88 | | - "source": "result" |
89 | | - } |
90 | | - ], |
91 | | - "host_realization_ref": { |
92 | | - "path": "Examples/05_bounded_ui_accumulator/ui/accumulator_panel.wfrog", |
93 | | - "authority": "downstream_non_authoritative" |
94 | | - } |
95 | | - }, |
96 | | - "state_model": { |
97 | | - "explicit_state": true, |
98 | | - "carrier": { |
99 | | - "state_id": "accumulator_state", |
100 | | - "primitive": "frog.core.delay", |
101 | | - "type": "u16", |
102 | | - "initial_value": 0 |
103 | | - } |
104 | | - }, |
105 | | - "execution_model": { |
106 | | - "structure": "for_loop", |
107 | | - "iteration_count": 5, |
108 | | - "loop_inputs": [ |
109 | | - { |
110 | | - "id": "loop_input_value", |
111 | | - "type": "u16", |
112 | | - "source": "input_value" |
113 | | - }, |
114 | | - { |
115 | | - "id": "loop_initial_state", |
116 | | - "type": "u16", |
117 | | - "source": "state.initial_value" |
118 | | - } |
119 | | - ], |
120 | | - "body_operations": [ |
121 | | - { |
122 | | - "op_id": "delay_state", |
123 | | - "kind": "state_read_write", |
124 | | - "primitive": "frog.core.delay", |
125 | | - "state_id": "accumulator_state" |
126 | | - }, |
127 | | - { |
128 | | - "op_id": "add_step", |
129 | | - "kind": "primitive", |
130 | | - "primitive": "frog.core.add", |
131 | | - "inputs": [ |
132 | | - "loop_input_value", |
133 | | - "state.current" |
134 | | - ], |
135 | | - "output": "state.next" |
136 | | - } |
137 | | - ], |
138 | | - "commit_rule": "state_next becomes state_current at each loop iteration commit point", |
139 | | - "result_rule": "final_state is published to public output result and to indicator ind_result" |
140 | | - } |
141 | | - } |
142 | | - ] |
143 | | -} |
| 1 | +{} |
0 commit comments