You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CMSIS-DSP/ComputeGraph/examples/example8/sched.py

204 lines
4.6 KiB
Python

#
# Generated with CMSIS-DSP Compute Graph Scripts.
# The generated code is not covered by CMSIS-DSP license.
#
# The support classes and code is covered by CMSIS-DSP license.
#
import sys
import numpy as np
import cmsisdsp as dsp
from cmsisdsp.cg.static.nodes.simu import *
from appnodes import *
from custom import *
DEBUGSCHED=False
#
# FIFO buffers
#
FIFOSIZE0=11
buf0=np.empty(FIFOSIZE0,dtype=object)
for i in range(FIFOSIZE0):
buf0[i] = MyComplex()
FIFOSIZE1=5
buf1=np.empty(FIFOSIZE1,dtype=object)
for i in range(FIFOSIZE1):
buf1[i] = MyComplex()
FIFOSIZE2=5
buf2=np.empty(FIFOSIZE2,dtype=object)
for i in range(FIFOSIZE2):
buf2[i] = MyComplex()
FIFOSIZE3=5
buf3=np.empty(FIFOSIZE3,dtype=object)
for i in range(FIFOSIZE3):
buf3[i] = MyComplex()
FIFOSIZE4=5
buf4=np.empty(FIFOSIZE4,dtype=object)
for i in range(FIFOSIZE4):
buf4[i] = MyComplex()
FIFOSIZE5=5
buf5=np.empty(FIFOSIZE5,dtype=object)
for i in range(FIFOSIZE5):
buf5[i] = MyComplex()
def scheduler(someVariable):
cgStaticError=0
nbSchedule=0
debugCounter=1
#
# Create FIFOs objects
#
fifo0=FIFO(FIFOSIZE0,buf0)
fifo1=FIFO(FIFOSIZE1,buf1)
fifo2=FIFO(FIFOSIZE2,buf2)
fifo3=FIFO(FIFOSIZE3,buf3)
fifo4=FIFO(FIFOSIZE4,buf4)
fifo5=FIFO(FIFOSIZE5,buf5)
#
# Create node objects
#
dup0 = Duplicate3(5,5,5,5,fifo2,fifo3,fifo4,fifo5)
filter = ProcessingNode(7,5,5,fifo0,fifo2,fifo1,4,"Test",someVariable)
sa = Sink(5,fifo3)
sb = Sink(5,fifo4)
sc = Sink(5,fifo5)
sd = Sink(5,fifo1)
source = Source(5,fifo0)
while((cgStaticError==0) and (debugCounter > 0)):
nbSchedule = nbSchedule + 1
cgStaticError = source.run()
if cgStaticError < 0:
break
cgStaticError = source.run()
if cgStaticError < 0:
break
cgStaticError = filter.run()
if cgStaticError < 0:
break
cgStaticError = sd.run()
if cgStaticError < 0:
break
cgStaticError = dup0.run()
if cgStaticError < 0:
break
cgStaticError = sc.run()
if cgStaticError < 0:
break
cgStaticError = sb.run()
if cgStaticError < 0:
break
cgStaticError = sa.run()
if cgStaticError < 0:
break
cgStaticError = source.run()
if cgStaticError < 0:
break
cgStaticError = filter.run()
if cgStaticError < 0:
break
cgStaticError = source.run()
if cgStaticError < 0:
break
cgStaticError = sd.run()
if cgStaticError < 0:
break
cgStaticError = dup0.run()
if cgStaticError < 0:
break
cgStaticError = sc.run()
if cgStaticError < 0:
break
cgStaticError = sb.run()
if cgStaticError < 0:
break
cgStaticError = sa.run()
if cgStaticError < 0:
break
cgStaticError = source.run()
if cgStaticError < 0:
break
cgStaticError = filter.run()
if cgStaticError < 0:
break
cgStaticError = sd.run()
if cgStaticError < 0:
break
cgStaticError = dup0.run()
if cgStaticError < 0:
break
cgStaticError = sc.run()
if cgStaticError < 0:
break
cgStaticError = sb.run()
if cgStaticError < 0:
break
cgStaticError = sa.run()
if cgStaticError < 0:
break
cgStaticError = source.run()
if cgStaticError < 0:
break
cgStaticError = filter.run()
if cgStaticError < 0:
break
cgStaticError = source.run()
if cgStaticError < 0:
break
cgStaticError = sd.run()
if cgStaticError < 0:
break
cgStaticError = dup0.run()
if cgStaticError < 0:
break
cgStaticError = sc.run()
if cgStaticError < 0:
break
cgStaticError = sb.run()
if cgStaticError < 0:
break
cgStaticError = sa.run()
if cgStaticError < 0:
break
cgStaticError = filter.run()
if cgStaticError < 0:
break
cgStaticError = sd.run()
if cgStaticError < 0:
break
cgStaticError = dup0.run()
if cgStaticError < 0:
break
cgStaticError = sc.run()
if cgStaticError < 0:
break
cgStaticError = sb.run()
if cgStaticError < 0:
break
cgStaticError = sa.run()
if cgStaticError < 0:
break
debugCounter = debugCounter - 1
return(nbSchedule,cgStaticError)