1#
2# Generated with CMSIS-DSP SDF Scripts.
3# The generated code is not covered by CMSIS-DSP license.
4#
5# The support classes and code is covered by CMSIS-DSP license.
6#
7
8import sys
9
10
11import numpy as np
12import cmsisdsp as dsp
13from cmsisdsp.sdf.nodes.simu import *
14from appnodes import *
15from custom import *
16
17DEBUGSCHED=False
18
19#
20# FIFO buffers
21#
22
23
24FIFOSIZE0=160
25buf0=np.zeros(FIFOSIZE0,dtype=np.int16)
26
27FIFOSIZE1=400
28buf1=np.zeros(FIFOSIZE1,dtype=np.int16)
29
30FIFOSIZE2=49
31buf2=np.zeros(FIFOSIZE2,dtype=np.int16)
32
33FIFOSIZE3=98
34buf3=np.zeros(FIFOSIZE3,dtype=np.int16)
35
36FIFOSIZE4=98
37buf4=np.zeros(FIFOSIZE4,dtype=np.int16)
38
39FIFOSIZE5=1
40buf5=np.zeros(FIFOSIZE5,dtype=np.int16)
41
42
43def scheduler(input_array,window,coef_q15,coef_shift,intercept_q15,intercept_shift):
44    sdfError=0
45    nbSchedule=0
46    debugCounter=13
47
48    #
49    #  Create FIFOs objects
50    #
51    fifo0=FIFO(FIFOSIZE0,buf0)
52    fifo1=FIFO(FIFOSIZE1,buf1)
53    fifo2=FIFO(FIFOSIZE2,buf2)
54    fifo3=FIFO(FIFOSIZE3,buf3)
55    fifo4=FIFO(FIFOSIZE4,buf4)
56    fifo5=FIFO(FIFOSIZE5,buf5)
57
58    #
59    #  Create node objects
60    #
61    audioWin = SlidingBuffer(400,240,fifo0,fifo1)
62    feature = Feature(400,1,fifo1,fifo2,window)
63    featureWin = SlidingBuffer(98,49,fifo2,fifo3)
64    fir = FIR(98,98,fifo3,fifo4)
65    kws = KWS(98,1,fifo4,fifo5,coef_q15,coef_shift,intercept_q15,intercept_shift)
66    sink = Sink(1,fifo5)
67    src = Source(160,fifo0,input_array)
68
69    while((sdfError==0) and (debugCounter > 0)):
70       nbSchedule = nbSchedule + 1
71
72       sdfError = src.run()
73       if sdfError < 0:
74          break
75       sdfError = audioWin.run()
76       if sdfError < 0:
77          break
78       sdfError = feature.run()
79       if sdfError < 0:
80          break
81       sdfError = src.run()
82       if sdfError < 0:
83          break
84       sdfError = audioWin.run()
85       if sdfError < 0:
86          break
87       sdfError = feature.run()
88       if sdfError < 0:
89          break
90       sdfError = src.run()
91       if sdfError < 0:
92          break
93       sdfError = audioWin.run()
94       if sdfError < 0:
95          break
96       sdfError = feature.run()
97       if sdfError < 0:
98          break
99       sdfError = src.run()
100       if sdfError < 0:
101          break
102       sdfError = audioWin.run()
103       if sdfError < 0:
104          break
105       sdfError = feature.run()
106       if sdfError < 0:
107          break
108       sdfError = src.run()
109       if sdfError < 0:
110          break
111       sdfError = audioWin.run()
112       if sdfError < 0:
113          break
114       sdfError = feature.run()
115       if sdfError < 0:
116          break
117       sdfError = src.run()
118       if sdfError < 0:
119          break
120       sdfError = audioWin.run()
121       if sdfError < 0:
122          break
123       sdfError = feature.run()
124       if sdfError < 0:
125          break
126       sdfError = src.run()
127       if sdfError < 0:
128          break
129       sdfError = audioWin.run()
130       if sdfError < 0:
131          break
132       sdfError = feature.run()
133       if sdfError < 0:
134          break
135       sdfError = src.run()
136       if sdfError < 0:
137          break
138       sdfError = audioWin.run()
139       if sdfError < 0:
140          break
141       sdfError = feature.run()
142       if sdfError < 0:
143          break
144       sdfError = src.run()
145       if sdfError < 0:
146          break
147       sdfError = audioWin.run()
148       if sdfError < 0:
149          break
150       sdfError = feature.run()
151       if sdfError < 0:
152          break
153       sdfError = src.run()
154       if sdfError < 0:
155          break
156       sdfError = audioWin.run()
157       if sdfError < 0:
158          break
159       sdfError = feature.run()
160       if sdfError < 0:
161          break
162       sdfError = src.run()
163       if sdfError < 0:
164          break
165       sdfError = audioWin.run()
166       if sdfError < 0:
167          break
168       sdfError = feature.run()
169       if sdfError < 0:
170          break
171       sdfError = src.run()
172       if sdfError < 0:
173          break
174       sdfError = audioWin.run()
175       if sdfError < 0:
176          break
177       sdfError = feature.run()
178       if sdfError < 0:
179          break
180       sdfError = src.run()
181       if sdfError < 0:
182          break
183       sdfError = audioWin.run()
184       if sdfError < 0:
185          break
186       sdfError = feature.run()
187       if sdfError < 0:
188          break
189       sdfError = src.run()
190       if sdfError < 0:
191          break
192       sdfError = audioWin.run()
193       if sdfError < 0:
194          break
195       sdfError = feature.run()
196       if sdfError < 0:
197          break
198       sdfError = src.run()
199       if sdfError < 0:
200          break
201       sdfError = audioWin.run()
202       if sdfError < 0:
203          break
204       sdfError = feature.run()
205       if sdfError < 0:
206          break
207       sdfError = src.run()
208       if sdfError < 0:
209          break
210       sdfError = audioWin.run()
211       if sdfError < 0:
212          break
213       sdfError = feature.run()
214       if sdfError < 0:
215          break
216       sdfError = src.run()
217       if sdfError < 0:
218          break
219       sdfError = audioWin.run()
220       if sdfError < 0:
221          break
222       sdfError = feature.run()
223       if sdfError < 0:
224          break
225       sdfError = src.run()
226       if sdfError < 0:
227          break
228       sdfError = audioWin.run()
229       if sdfError < 0:
230          break
231       sdfError = feature.run()
232       if sdfError < 0:
233          break
234       sdfError = src.run()
235       if sdfError < 0:
236          break
237       sdfError = audioWin.run()
238       if sdfError < 0:
239          break
240       sdfError = feature.run()
241       if sdfError < 0:
242          break
243       sdfError = src.run()
244       if sdfError < 0:
245          break
246       sdfError = audioWin.run()
247       if sdfError < 0:
248          break
249       sdfError = feature.run()
250       if sdfError < 0:
251          break
252       sdfError = src.run()
253       if sdfError < 0:
254          break
255       sdfError = audioWin.run()
256       if sdfError < 0:
257          break
258       sdfError = feature.run()
259       if sdfError < 0:
260          break
261       sdfError = src.run()
262       if sdfError < 0:
263          break
264       sdfError = audioWin.run()
265       if sdfError < 0:
266          break
267       sdfError = feature.run()
268       if sdfError < 0:
269          break
270       sdfError = src.run()
271       if sdfError < 0:
272          break
273       sdfError = audioWin.run()
274       if sdfError < 0:
275          break
276       sdfError = feature.run()
277       if sdfError < 0:
278          break
279       sdfError = src.run()
280       if sdfError < 0:
281          break
282       sdfError = audioWin.run()
283       if sdfError < 0:
284          break
285       sdfError = feature.run()
286       if sdfError < 0:
287          break
288       sdfError = src.run()
289       if sdfError < 0:
290          break
291       sdfError = audioWin.run()
292       if sdfError < 0:
293          break
294       sdfError = feature.run()
295       if sdfError < 0:
296          break
297       sdfError = src.run()
298       if sdfError < 0:
299          break
300       sdfError = audioWin.run()
301       if sdfError < 0:
302          break
303       sdfError = feature.run()
304       if sdfError < 0:
305          break
306       sdfError = src.run()
307       if sdfError < 0:
308          break
309       sdfError = audioWin.run()
310       if sdfError < 0:
311          break
312       sdfError = feature.run()
313       if sdfError < 0:
314          break
315       sdfError = src.run()
316       if sdfError < 0:
317          break
318       sdfError = audioWin.run()
319       if sdfError < 0:
320          break
321       sdfError = feature.run()
322       if sdfError < 0:
323          break
324       sdfError = src.run()
325       if sdfError < 0:
326          break
327       sdfError = audioWin.run()
328       if sdfError < 0:
329          break
330       sdfError = feature.run()
331       if sdfError < 0:
332          break
333       sdfError = src.run()
334       if sdfError < 0:
335          break
336       sdfError = audioWin.run()
337       if sdfError < 0:
338          break
339       sdfError = feature.run()
340       if sdfError < 0:
341          break
342       sdfError = src.run()
343       if sdfError < 0:
344          break
345       sdfError = audioWin.run()
346       if sdfError < 0:
347          break
348       sdfError = feature.run()
349       if sdfError < 0:
350          break
351       sdfError = src.run()
352       if sdfError < 0:
353          break
354       sdfError = audioWin.run()
355       if sdfError < 0:
356          break
357       sdfError = feature.run()
358       if sdfError < 0:
359          break
360       sdfError = src.run()
361       if sdfError < 0:
362          break
363       sdfError = audioWin.run()
364       if sdfError < 0:
365          break
366       sdfError = feature.run()
367       if sdfError < 0:
368          break
369       sdfError = src.run()
370       if sdfError < 0:
371          break
372       sdfError = audioWin.run()
373       if sdfError < 0:
374          break
375       sdfError = feature.run()
376       if sdfError < 0:
377          break
378       sdfError = src.run()
379       if sdfError < 0:
380          break
381       sdfError = audioWin.run()
382       if sdfError < 0:
383          break
384       sdfError = feature.run()
385       if sdfError < 0:
386          break
387       sdfError = src.run()
388       if sdfError < 0:
389          break
390       sdfError = audioWin.run()
391       if sdfError < 0:
392          break
393       sdfError = feature.run()
394       if sdfError < 0:
395          break
396       sdfError = src.run()
397       if sdfError < 0:
398          break
399       sdfError = audioWin.run()
400       if sdfError < 0:
401          break
402       sdfError = feature.run()
403       if sdfError < 0:
404          break
405       sdfError = src.run()
406       if sdfError < 0:
407          break
408       sdfError = audioWin.run()
409       if sdfError < 0:
410          break
411       sdfError = feature.run()
412       if sdfError < 0:
413          break
414       sdfError = src.run()
415       if sdfError < 0:
416          break
417       sdfError = audioWin.run()
418       if sdfError < 0:
419          break
420       sdfError = feature.run()
421       if sdfError < 0:
422          break
423       sdfError = src.run()
424       if sdfError < 0:
425          break
426       sdfError = audioWin.run()
427       if sdfError < 0:
428          break
429       sdfError = feature.run()
430       if sdfError < 0:
431          break
432       sdfError = src.run()
433       if sdfError < 0:
434          break
435       sdfError = audioWin.run()
436       if sdfError < 0:
437          break
438       sdfError = feature.run()
439       if sdfError < 0:
440          break
441       sdfError = src.run()
442       if sdfError < 0:
443          break
444       sdfError = audioWin.run()
445       if sdfError < 0:
446          break
447       sdfError = feature.run()
448       if sdfError < 0:
449          break
450       sdfError = src.run()
451       if sdfError < 0:
452          break
453       sdfError = audioWin.run()
454       if sdfError < 0:
455          break
456       sdfError = feature.run()
457       if sdfError < 0:
458          break
459       sdfError = src.run()
460       if sdfError < 0:
461          break
462       sdfError = audioWin.run()
463       if sdfError < 0:
464          break
465       sdfError = feature.run()
466       if sdfError < 0:
467          break
468       sdfError = src.run()
469       if sdfError < 0:
470          break
471       sdfError = audioWin.run()
472       if sdfError < 0:
473          break
474       sdfError = feature.run()
475       if sdfError < 0:
476          break
477       sdfError = src.run()
478       if sdfError < 0:
479          break
480       sdfError = audioWin.run()
481       if sdfError < 0:
482          break
483       sdfError = feature.run()
484       if sdfError < 0:
485          break
486       sdfError = src.run()
487       if sdfError < 0:
488          break
489       sdfError = audioWin.run()
490       if sdfError < 0:
491          break
492       sdfError = feature.run()
493       if sdfError < 0:
494          break
495       sdfError = src.run()
496       if sdfError < 0:
497          break
498       sdfError = audioWin.run()
499       if sdfError < 0:
500          break
501       sdfError = feature.run()
502       if sdfError < 0:
503          break
504       sdfError = src.run()
505       if sdfError < 0:
506          break
507       sdfError = audioWin.run()
508       if sdfError < 0:
509          break
510       sdfError = feature.run()
511       if sdfError < 0:
512          break
513       sdfError = featureWin.run()
514       if sdfError < 0:
515          break
516       sdfError = fir.run()
517       if sdfError < 0:
518          break
519       sdfError = kws.run()
520       if sdfError < 0:
521          break
522       sdfError = sink.run()
523       if sdfError < 0:
524          break
525
526       debugCounter = debugCounter - 1
527    return(nbSchedule,sdfError)
528