Skip to content

Commit aa64901

Browse files
committed
Configuracion
1 parent 04bc61a commit aa64901

16 files changed

+224
-102
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#Ignorar archivos:
22
.pio/
33
**.vscode/
4+
**__pycache__/
45
test/
56
Doxyfile
67
platformio.ini
@@ -18,5 +19,5 @@ cient/*.json
1819
client/node_modules/
1920

2021
#Ignore pycache:
21-
server/**_pycache__
22+
#server/src/**__pycache__/
2223

server/src/Datos.json

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,54 @@
11
{
2-
"configuracion": {},
2+
"configuracion": {
3+
"baudrate": 9600,
4+
"bytesize": 8,
5+
"parity": "N",
6+
"stopbits": 1,
7+
"xonxoff": false,
8+
"dsrdtr": false,
9+
"rtscts": false,
10+
"timeout": 2,
11+
"write_timeout": null,
12+
"inter_byte_timeout": null
13+
},
314
"Datos_Arduino": {
4-
"a": 1.1428571428571428,
5-
"x2": 0.3896103896103897,
6-
"x3": 0.06493506493506493
15+
"Tara": "210",
16+
"Peso Total": "12.30",
17+
"Radio llave": "10.50",
18+
"Suma Valores": "1.50",
19+
"Caudal Total": "1.60",
20+
"Altura Maxima": "1.80"
721
},
8-
"Estadistica": []
22+
"Estadistica": [
23+
0.0,
24+
0.0,
25+
0.0,
26+
0.0,
27+
0.0,
28+
0.0,
29+
0.0,
30+
0.0,
31+
0.0,
32+
0.0,
33+
0.0,
34+
0.0,
35+
0.0,
36+
0.0,
37+
0.0,
38+
0.0,
39+
0.0,
40+
0.0,
41+
0.0,
42+
0.0,
43+
0.0,
44+
0.0,
45+
0.0,
46+
0.0,
47+
0.0,
48+
0.0,
49+
0.0,
50+
0.0,
51+
0.0,
52+
0.0
53+
]
954
}
106 Bytes
Binary file not shown.
Binary file not shown.
160 Bytes
Binary file not shown.

server/src/botones.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,9 @@ def __regresion_datos(self, *args: tkinter.StringVar, pantalla: tkinter.Toplevel
133133
self.caja.insert(
134134
tkinter.END, "{:.2f}".format(element))
135135
self.dispositivo.Regresion(element)
136-
self.pantalla.after(1400, self.dispositivo.mostrar_datos_en_buffer)
136+
self.pantalla.after(1400, self.confirmar)
137137
self.caja.insert(
138138
tkinter.END, "Regresion configurada")
139-
self.dispositivo.limpiar()
140139
pantalla.destroy()
141140
else:
142141
pass
@@ -177,6 +176,8 @@ def conection_arduino(self) -> None:
177176
else:
178177
boton1.config(state="disabled")
179178
aux.config(state="disabled")
179+
var.set(self.dispositivo.Port())
180+
self.caja.insert(tkinter.END, self.dispositivo.conexion)
180181

181182
#Boton para obtener las opciones:
182183
def menu_opciones_conexion(self, var: tkinter.StringVar, port: list) -> tkinter.OptionMenu:
@@ -234,22 +235,23 @@ def __refrescar(self, port: tkinter.OptionMenu, etiqueta: tkinter.Label, var: tk
234235
except ValueError:
235236
pass
236237
puerto.extend(aux)
237-
elemento = set(puerto)
238+
elemento : set = set(puerto)
238239
puerto = list(elemento)
239240
puerto.insert(0, "Automatico")
240241
valor_aux: str = var2.get()
241242
self.__add(var2, port, puerto, valor_aux)
242243
self.caja.insert(tkinter.END, "Se Buscaron Nuevos Puertos.")
243244
elif self.dispositivo.estado_conexion():
244245
self.dispositivo.escribir_datos("[true/5]")
245-
self.pantalla.after(1200, self.confirmar)
246+
self.pantalla.after(2000, self.confirmar)
246247
self.caja.delete(0,tkinter.END)
247248

248249
def confirmar(self):
249250
if self.dispositivo.conection("sigue"):
250-
print("conectado")
251+
self.caja.insert(tkinter.END, "Conection True")
251252
else:
252253
self.dispositivo.desconectar()
254+
self.caja.insert(tkinter.END, "Conection False")
253255

254256
def __add(self, var: tkinter.StringVar, menu: tkinter.OptionMenu, port: list, value: str):
255257
menu['menu'].delete(0, 'end')

server/src/conectado_datos.py

Lines changed: 80 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import tkinter
22
from logica import Arduino
33
from Ventanas import Ventana
4+
from statistics import mode, median, mean
45

56
class Conectado_datos:
67

7-
Estadistica: bool = False
8-
98
def __init__(self, pantalla: Ventana, Dispostivo: Arduino, caja: tkinter.Listbox) -> None:
109
self.pantalla: tkinter.Tk = pantalla.mostrar_ventana()
1110
self.dispositivo: Arduino = Dispostivo
@@ -18,6 +17,8 @@ def __init__(self, pantalla: Ventana, Dispostivo: Arduino, caja: tkinter.Listbox
1817
self.listas: list = []
1918
self.altura: float = 0
2019
self.peso: float = 0
20+
self.Datos_Arduino_final: bool = True
21+
self.Estadistica: bool = True
2122

2223
def etiquetas(self) -> None:
2324
self.ventanas.etiqueta_titulo_movible_main(
@@ -41,6 +42,7 @@ def opciones(self) -> None:
4142
self.obtener_datos()
4243
self.estadistica()
4344
self.celdad_carga()
45+
self.cerrar_all()
4446

4547
def ingrear_peso(self) -> None:
4648
boton = tkinter.Button(self.pantalla, text="Ing. Peso", command= lambda: self.__desactivar("peso"))
@@ -57,48 +59,72 @@ def obtener_datos(self) -> None:
5759
boton.place(relx=0.86, rely=0.41)
5860

5961
def __pedir_datos(self) -> None:
60-
if not self.Estadistica:
62+
if self.Datos_Arduino_final:
6163
self.dispositivo.data.clear()
6264
self.dispositivo.escribir_datos("[true/6]")
63-
self.pantalla.after(1400, self.__data_arduino)
64-
self.caja.insert(tkinter.END, "Datos cargados desde el arduino")
65+
self.caja.insert(tkinter.END, "Datos cargados desde el arduino")
66+
else:
67+
self.caja.insert(tkinter.END, "Datos Recuperados")
68+
self.pantalla.after(1400, self.__data_arduino)
6569

6670
def __data_arduino(self) -> None:
67-
if(len(self.dispositivo.data) != 0):
68-
for item in self.dispositivo.data:
69-
self.listas.append(item)
70-
dictionary :dict = {
71-
"Tara": self.listas[0],
72-
"Peso Total" : self.listas[1],
73-
"Radio llave": self.listas[2],
74-
"Suma Valores": self.listas[3],
75-
"Caudal Total": self.listas[4],
76-
"Altura Maxima": self.listas[5]
77-
}
78-
self.dispositivo.limpiar()
79-
else:
80-
print("Sin datos")
71+
aux16: dict = self.dispositivo.recolectar_datos(self.Datos_Arduino_final)
72+
self.Datos_Arduino_final = False
73+
for key, value in aux16.items():
74+
self.caja.insert(tkinter.END, f"{key} : {value}")
8175

8276
def estadistica(self) -> None:
8377
boton = tkinter.Button(
8478
self.pantalla, text="Estadistica", command= self.conseguir)
8579
boton.place(relx=0.843, rely=0.48)
8680

8781
def conseguir(self) -> None:
88-
if not self.Estadistica:
89-
self.dispositivo.data.clear()
82+
if self.Estadistica:
9083
self.dispositivo.escribir_datos("[true/3]")
91-
self.pantalla.after(2500, self.datos_dias)
84+
self.pantalla.after(2500, self.datos_dias)
9285
self.caja.insert(tkinter.END, "Datos en litros de la cantidad de jugo de caña de los ultimos 30 días")
86+
Estadistica_x2 : tkinter.Toplevel = tkinter.Toplevel(background="#2a8d90")
87+
Estadistica_x2.title("Estadistica")
88+
Estadistica_x2.geometry("380x180")
89+
Estadistica_x2.resizable(False, False)
90+
#Etiqueta:
91+
self.ventanas.etiqueta_titulo(Estadistica_x2,"Medidas de Tendencia Central")
92+
#Botones:
93+
boton1 = tkinter.Button(Estadistica_x2, text ="Mediana", command=self.mediana)
94+
boton1.place(relx=0.1, rely=0.5)
95+
boton2 = tkinter.Button(Estadistica_x2, text="Media", command=self.media_ardu)
96+
boton2.place(relx=0.3, rely=0.5)
97+
boton3 = tkinter.Button(Estadistica_x2, text="Moda", command=self.moda)
98+
boton3.place(relx=0.5, rely=0.5)
99+
boton4 = tkinter.Button(Estadistica_x2, text="Imprimir datos", command=self.imprimir_datos_dias)
100+
boton4.place(relx=0.7, rely=0.5)
101+
102+
def media_ardu(self) -> None:
103+
aux : float = mean(self.dispositivo.Datos_estadisticos)
104+
self.caja.insert(tkinter.END, f"La mediana de los datos: {aux}")
105+
106+
def moda(self) -> None:
107+
aux: float = mode(self.dispositivo.Datos_estadisticos)
108+
self.caja.insert(tkinter.END, f"La moda de los datos es: {aux}")
109+
110+
def mediana(self) -> None:
111+
aux: float = median(self.dispositivo.Datos_estadisticos)
112+
self.caja.insert(tkinter.END, f"La mediana de los datos es: {aux}")
113+
114+
def imprimir_datos_dias(self) -> None:
115+
self.caja.insert(tkinter.END, f"Los datos de los dias son: ")
116+
for indx, item in enumerate(self.dispositivo.Datos_estadisticos, start=1):
117+
self.caja.insert(tkinter.END, f"Día {indx}: {item}")
93118

94119
def datos_dias(self) -> None:
95-
if(len(self.dispositivo.data) != 0):
96-
for item in self.dispositivo.data:
97-
self.datos.append(item)
98-
print(item)
99-
self.dispositivo.limpiar()
120+
if self.dispositivo.datos_estadisticos_ard(self.Estadistica):
121+
self.caja.insert(tkinter.END, "Dato recividos correctamente")
122+
self.Estadistica = False
100123
else:
101-
print("Sin_datos")
124+
if not self.Estadistica:
125+
self.caja.insert(tkinter.END, "Dato ya pedidos")
126+
else:
127+
self.caja.insert(tkinter.END, "Error en el recivimiento de los datos")
102128

103129
def celdad_carga(self) -> None:
104130
boton = tkinter.Button(
@@ -136,11 +162,25 @@ def __guardar_cambios(self) -> None:
136162
elif self.__var == "altura":
137163
aux = "[{0}/7]".format(self.altura)
138164
self.dispositivo.escribir_datos(aux)
139-
self.peso = 0
140-
self.altura = 0
165+
self.Datos_Arduino_final = True
141166
self.etiqueta.delete(0, 'end')
142-
self.dispositivo.limpiar()
143167
self.__abilitar()
168+
self.pantalla.after(1200, self.confirmar_datos_arduino)
169+
170+
def confirmar_datos_arduino(self):
171+
if self.__var == "peso":
172+
if self.dispositivo.conection(str(self.peso)):
173+
self.caja.insert(tkinter.END, "Dato enviado correctamente")
174+
else:
175+
self.caja.insert(tkinter.END, "Error enviando dato")
176+
elif self.__var == "altura":
177+
if self.dispositivo.conection(str(self.altura)):
178+
self.caja.insert(tkinter.END, "Dato enviado correctamente")
179+
else:
180+
self.caja.insert(tkinter.END, "Error enviando dato")
181+
self.peso = 0
182+
self.altura = 0
183+
self.__var = ""
144184

145185
def descartar(self) -> None:
146186
boton = tkinter.Button(
@@ -226,5 +266,13 @@ def __config_Altura(self) -> None:
226266
elif widget.config('text')[-1] == "Descartar":
227267
widget.configure(state="active")
228268
self.__var = "altura"
269+
270+
def cerrar_all(self) -> None:
271+
self.pantalla.protocol("WM_DELETE_WINDOW", self.cerrar_principal)
229272

230-
273+
def cerrar_principal(self) -> None:
274+
self.dispositivo.escribir_datos("[false/5]")
275+
self.pantalla.after(1000, self.terminado)
276+
277+
def terminado(self) -> None:
278+
self.pantalla.destroy()

0 commit comments

Comments
 (0)