@@ -63,9 +63,206 @@ tests:
6363 - name : " D-PAD buttons state"
6464 action : manual
6565 display :
66- - method : get_gpio
67- label : " GPIO register"
68- unit : " "
69- prompt : " La valeur du registre GPIO est-elle cohérente (boutons D-PAD non pressés) ?"
66+ - method : get_level
67+ args : [7]
68+ label : " UP (GP7)"
69+ unit : " (1=relâché, 0=appuyé)"
70+ - method : get_level
71+ args : [5]
72+ label : " DOWN (GP5)"
73+ unit : " (1=relâché, 0=appuyé)"
74+ - method : get_level
75+ args : [6]
76+ label : " LEFT (GP6)"
77+ unit : " (1=relâché, 0=appuyé)"
78+ - method : get_level
79+ args : [4]
80+ label : " RIGHT (GP4)"
81+ unit : " (1=relâché, 0=appuyé)"
82+ prompt : " Tous les boutons sont-ils relâchés (valeur 1) ?"
83+ expect_true : true
84+ mode : [hardware]
85+
86+ # --- Polling tests (one per D-PAD button) ---
87+ # LED_GREEN signals when the board is ready to read the button.
88+
89+ - name : " D-PAD UP button (polling)"
90+ action : hardware_script
91+ pre_prompt : " Test polling D-PAD : appuyez sur chaque bouton quand la LED verte s'allume (5s). Commençons par UP."
92+ script : |
93+ from machine import Pin
94+ from time import sleep_ms, ticks_ms, ticks_diff
95+ led = Pin("LED_GREEN", Pin.OUT)
96+ led.on()
97+ start = ticks_ms()
98+ detected = False
99+ while ticks_diff(ticks_ms(), start) < 5000:
100+ if dev.get_level(7) == 0:
101+ detected = True
102+ break
103+ sleep_ms(50)
104+ led.off()
105+ result = detected
106+ expect_true : true
107+ mode : [hardware]
108+
109+ - name : " D-PAD DOWN button (polling)"
110+ action : hardware_script
111+ pre_prompt : " Bouton DOWN"
112+ wait : false
113+ script : |
114+ from machine import Pin
115+ from time import sleep_ms, ticks_ms, ticks_diff
116+ led = Pin("LED_GREEN", Pin.OUT)
117+ led.on()
118+ start = ticks_ms()
119+ detected = False
120+ while ticks_diff(ticks_ms(), start) < 5000:
121+ if dev.get_level(5) == 0:
122+ detected = True
123+ break
124+ sleep_ms(50)
125+ led.off()
126+ result = detected
127+ expect_true : true
128+ mode : [hardware]
129+
130+ - name : " D-PAD LEFT button (polling)"
131+ action : hardware_script
132+ pre_prompt : " Bouton LEFT"
133+ wait : false
134+ script : |
135+ from machine import Pin
136+ from time import sleep_ms, ticks_ms, ticks_diff
137+ led = Pin("LED_GREEN", Pin.OUT)
138+ led.on()
139+ start = ticks_ms()
140+ detected = False
141+ while ticks_diff(ticks_ms(), start) < 5000:
142+ if dev.get_level(6) == 0:
143+ detected = True
144+ break
145+ sleep_ms(50)
146+ led.off()
147+ result = detected
148+ expect_true : true
149+ mode : [hardware]
150+
151+ - name : " D-PAD RIGHT button (polling)"
152+ action : hardware_script
153+ pre_prompt : " Bouton RIGHT"
154+ wait : false
155+ script : |
156+ from machine import Pin
157+ from time import sleep_ms, ticks_ms, ticks_diff
158+ led = Pin("LED_GREEN", Pin.OUT)
159+ led.on()
160+ start = ticks_ms()
161+ detected = False
162+ while ticks_diff(ticks_ms(), start) < 5000:
163+ if dev.get_level(4) == 0:
164+ detected = True
165+ break
166+ sleep_ms(50)
167+ led.off()
168+ result = detected
169+ expect_true : true
170+ mode : [hardware]
171+
172+ # --- Interrupt tests (one per D-PAD button) ---
173+ # LED_GREEN signals when the board is ready; polls INTF register.
174+
175+ - name : " D-PAD UP button (interrupt)"
176+ action : hardware_script
177+ pre_prompt : " Test interrupt D-PAD : appuyez brièvement sur chaque bouton quand la LED verte s'allume (5s). Commençons par UP."
178+ script : |
179+ from machine import Pin
180+ from time import sleep_ms, ticks_ms, ticks_diff
181+ led = Pin("LED_GREEN", Pin.OUT)
182+ dev._send_enable_interrupt(7)
183+ dev.get_gpio()
184+ led.on()
185+ start = ticks_ms()
186+ detected = False
187+ while ticks_diff(ticks_ms(), start) < 5000:
188+ if dev.get_intf() & (1 << 7):
189+ detected = True
190+ dev.get_intcap()
191+ break
192+ sleep_ms(50)
193+ led.off()
194+ result = detected
195+ expect_true : true
196+ mode : [hardware]
197+
198+ - name : " D-PAD DOWN button (interrupt)"
199+ action : hardware_script
200+ pre_prompt : " Bouton DOWN"
201+ wait : false
202+ script : |
203+ from machine import Pin
204+ from time import sleep_ms, ticks_ms, ticks_diff
205+ led = Pin("LED_GREEN", Pin.OUT)
206+ dev._send_enable_interrupt(5)
207+ dev.get_gpio()
208+ led.on()
209+ start = ticks_ms()
210+ detected = False
211+ while ticks_diff(ticks_ms(), start) < 5000:
212+ if dev.get_intf() & (1 << 5):
213+ detected = True
214+ dev.get_intcap()
215+ break
216+ sleep_ms(50)
217+ led.off()
218+ result = detected
219+ expect_true : true
220+ mode : [hardware]
221+
222+ - name : " D-PAD LEFT button (interrupt)"
223+ action : hardware_script
224+ pre_prompt : " Bouton LEFT"
225+ wait : false
226+ script : |
227+ from machine import Pin
228+ from time import sleep_ms, ticks_ms, ticks_diff
229+ led = Pin("LED_GREEN", Pin.OUT)
230+ dev._send_enable_interrupt(6)
231+ dev.get_gpio()
232+ led.on()
233+ start = ticks_ms()
234+ detected = False
235+ while ticks_diff(ticks_ms(), start) < 5000:
236+ if dev.get_intf() & (1 << 6):
237+ detected = True
238+ dev.get_intcap()
239+ break
240+ sleep_ms(50)
241+ led.off()
242+ result = detected
243+ expect_true : true
244+ mode : [hardware]
245+
246+ - name : " D-PAD RIGHT button (interrupt)"
247+ action : hardware_script
248+ pre_prompt : " Bouton RIGHT"
249+ wait : false
250+ script : |
251+ from machine import Pin
252+ from time import sleep_ms, ticks_ms, ticks_diff
253+ led = Pin("LED_GREEN", Pin.OUT)
254+ dev._send_enable_interrupt(4)
255+ dev.get_gpio()
256+ led.on()
257+ start = ticks_ms()
258+ detected = False
259+ while ticks_diff(ticks_ms(), start) < 5000:
260+ if dev.get_intf() & (1 << 4):
261+ detected = True
262+ dev.get_intcap()
263+ break
264+ sleep_ms(50)
265+ led.off()
266+ result = detected
70267 expect_true : true
71268 mode : [hardware]
0 commit comments