-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcarrito.py
More file actions
93 lines (68 loc) · 2.83 KB
/
carrito.py
File metadata and controls
93 lines (68 loc) · 2.83 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import random
import psutil
import numpy as np
from time import sleep
from grafica import Grafica
from comandos_linux import *
class Carrito:
def __init__(self, recorrido_saltado, medidas, recorrido, datos_fourier, barrera_principal, barrera_principal_fin, barrera_fourier, barrera_fourier_fin, posicion_cpu, pids, porcen_cpu):
self.barrera_fourier_fin = barrera_fourier_fin
self.porcen_cpu = porcen_cpu
self.posicion_cpu = posicion_cpu
self.pids = pids
self.velocidad = 1 #cm/s
self.distancia = -1
self.barrera_principal = barrera_principal
self.barrera_principal_fin = barrera_principal_fin
self.barrera_fourier = barrera_fourier
self.barrera_fourier_fin = barrera_fourier_fin
self.recorrido_saltado = recorrido_saltado
self.recorrido_saltado[0] = self.distancia
self.recorrido_saltado[1] = self.distancia
self.medidas = medidas
self.recorrido = recorrido
self.datos_para_fourier = datos_fourier
def update_posicion(self):
self.recorrido_saltado[0] = self.distancia + 1
self.distancia = self.distancia + self.velocidad
self.recorrido_saltado[1] = self.distancia
def update_info_cpu(self):
self.pids[0] = pid()
self.posicion_cpu[0] = cpu(self.pids[0])
self.porcen_cpu[0] = porcentaje_cpu(self.pids[0])
def iniciar_sensor(self):
cont = 0
while(True):
print(self.velocidad)
cont = cont + 1
if cont == 50:
cont = 0
if self.porcen_cpu[2] > 80.0:
self.update_velocidad(self.velocidad-1)
else:
self.update_velocidad(self.velocidad+1)
self.update_posicion()
self.update_info_cpu()
self.barrera_principal.wait()
sleep(1/(self.velocidad*100))
ini = self.recorrido_saltado[0]
fin = self.recorrido_saltado[1]
real = 0
if ini == fin:
real = self.tomar_medida(self.distancia)
self.recorrido.put(real)
else:
# Para visualizar recorrido hecho
for i in range(ini, fin+1):
real = self.tomar_medida(i)
self.recorrido.put(real)
# Para visualizar los datos que se han podido conseguir
self.medidas.put([self.distancia, real])
# Para calcular Fourier
self.barrera_fourier.wait()
self.datos_para_fourier.put(real)
self.barrera_fourier_fin.wait()
self.barrera_principal_fin.wait()
def update_velocidad(self, velocidad):
if velocidad > 0:
self.velocidad = velocidad