-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
46 lines (35 loc) · 1.5 KB
/
main.py
File metadata and controls
46 lines (35 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from multiprocessing import Process, Array, Value, Manager, Barrier, Queue
from time import sleep
from carrito import Carrito
from iu import IU
from fourier import Fourier
from time import sleep
if __name__ == '__main__':
# Colas de comunicación
medidas = Queue()
recorrido = Queue()
datos_para_fourier = Queue()
fourier_a_iu = Queue()
# Barreras de sincronización
barrera_principal = Barrier(2)
barrera_principal_fin = Barrier(2)
barrera_fourier = Barrier(2)
barrera_fourier_fin = Barrier(2)
# Datos compartidos entre procesos
recorrido_saltado = Array("i", (0, 0))
# Posiciones en CPU
posicion_cpu = Array("i", (0, 0, 0))
# Posiciones en PID
pids = Array("i", (0, 0, 0))
# Posiciones en PID
porcen_cpu = Array("d", (0, 0, 0))
carrito = Carrito(recorrido_saltado, medidas, recorrido, datos_para_fourier, barrera_principal, barrera_principal_fin, barrera_fourier, barrera_fourier_fin, posicion_cpu, pids, porcen_cpu)
proceso_carrito = Process(target=carrito.iniciar_sensor)
proceso_carrito.start()
fourier = Fourier(datos_para_fourier, fourier_a_iu, barrera_fourier, barrera_fourier_fin, posicion_cpu, pids, porcen_cpu)
proceso_fourier = Process(target=fourier.iniciar)
proceso_fourier.start()
iu = IU(medidas, recorrido, fourier_a_iu, barrera_principal, barrera_principal_fin, recorrido_saltado, barrera_fourier_fin, posicion_cpu, pids, porcen_cpu)
iu.iniciar_iu()
proceso_carrito.join()
proceso_fourier.join()