forked from TDTP/pantallas-led
Generate poster using 2 buses more nearly of the bus stop
parent
371da77fb0
commit
54daec5249
|
@ -25,22 +25,6 @@ def reescalar_imagen(input_path, output_path, nuevo_ancho, nuevo_alto):
|
||||||
def aprox(n):
|
def aprox(n):
|
||||||
return int(np.round(n))
|
return int(np.round(n))
|
||||||
|
|
||||||
def load_data():
|
|
||||||
data = {
|
|
||||||
"direction": "R",
|
|
||||||
"distance": 1948.575483806973,
|
|
||||||
"epochTime": 1674650956,
|
|
||||||
"latitude": -33.43729782104492,
|
|
||||||
"licensePlate": "LJHA57",
|
|
||||||
"longitude": -70.52730560302734,
|
|
||||||
"realtime": True,
|
|
||||||
"route": "401",
|
|
||||||
"routeId": "401",
|
|
||||||
"timeLabel": "09:49",
|
|
||||||
"tripId": "401-I-L-005"
|
|
||||||
}
|
|
||||||
return data
|
|
||||||
|
|
||||||
def approx_km(data):
|
def approx_km(data):
|
||||||
distance_meters = data["distance"]
|
distance_meters = data["distance"]
|
||||||
distance_km = distance_meters / 100 # Convert meters to kilometers
|
distance_km = distance_meters / 100 # Convert meters to kilometers
|
||||||
|
@ -97,8 +81,8 @@ def main():
|
||||||
print(data)
|
print(data)
|
||||||
|
|
||||||
# Calcula el tiempo restante a la llegada
|
# Calcula el tiempo restante a la llegada
|
||||||
remaining_time1 = calc_remaining_time(data1)
|
remaining_time1 = data1['timeRemaining']
|
||||||
remaining_time2 = calc_remaining_time(data2)
|
remaining_time2 = data2['timeRemaining']
|
||||||
# Obtiene valores máximos y mínimo de rangos para desplegar en pantalla
|
# Obtiene valores máximos y mínimo de rangos para desplegar en pantalla
|
||||||
min_time1, max_time1 = obtain_min_max_time(remaining_time1)
|
min_time1, max_time1 = obtain_min_max_time(remaining_time1)
|
||||||
min_time2, max_time2 = obtain_min_max_time(remaining_time2)
|
min_time2, max_time2 = obtain_min_max_time(remaining_time2)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
import pytz
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,7 +63,8 @@ class Paradero:
|
||||||
|
|
||||||
def __generate_bus_list(self, info):
|
def __generate_bus_list(self, info):
|
||||||
data_main = []
|
data_main = []
|
||||||
hora_actual = datetime.now().time()
|
zona_horaria_santiago = pytz.timezone('America/Santiago')
|
||||||
|
hora_actual_santiago = datetime.now(zona_horaria_santiago).time()
|
||||||
|
|
||||||
for i in range(len(info["GetInfoDeviceResponse"]["DetalleLineas"])):
|
for i in range(len(info["GetInfoDeviceResponse"]["DetalleLineas"])):
|
||||||
|
|
||||||
|
@ -76,13 +78,23 @@ class Paradero:
|
||||||
bus_info["number_background_color"] = data["colorFondo"]
|
bus_info["number_background_color"] = data["colorFondo"]
|
||||||
bus_info["letter_background_color"] = data["colorTexto"]
|
bus_info["letter_background_color"] = data["colorTexto"]
|
||||||
bus_info["patente"] = data["Llegadas"][0]["patente"]
|
bus_info["patente"] = data["Llegadas"][0]["patente"]
|
||||||
diff = timedelta(hours = datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().hour - hora_actual.hour,minutes = datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().minute - hora_actual.minute,seconds=datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().second - hora_actual.second)
|
bus_hour = datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().hour if datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().hour != 0 else 24
|
||||||
|
print(bus_hour, hora_actual_santiago.hour)
|
||||||
|
diff = timedelta(
|
||||||
|
hours = bus_hour - hora_actual_santiago.hour,
|
||||||
|
minutes = datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().minute - hora_actual_santiago.minute,
|
||||||
|
seconds=datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().second - hora_actual_santiago.second
|
||||||
|
)
|
||||||
|
print(diff.total_seconds())
|
||||||
bus_info["timeRemaining"] = int(abs(diff.total_seconds() // 60))
|
bus_info["timeRemaining"] = int(abs(diff.total_seconds() // 60))
|
||||||
data_main.append(bus_info)
|
data_main.append(bus_info)
|
||||||
|
|
||||||
data_main = sorted(data_main, key=lambda x: x['timeRemaining'])
|
data_main = sorted(data_main, key=lambda x: x['timeRemaining'])
|
||||||
self.bus_list = data_main
|
self.bus_list = data_main
|
||||||
|
|
||||||
|
for d in data_main:
|
||||||
|
print(d['timeRemaining'], d['timeLabel'])
|
||||||
|
|
||||||
def __serialize_data(self, response):
|
def __serialize_data(self, response):
|
||||||
data = response.json()
|
data = response.json()
|
||||||
self.__generate_bus_list(data)
|
self.__generate_bus_list(data)
|
||||||
|
|
|
@ -2,3 +2,4 @@ matplotlib
|
||||||
requests
|
requests
|
||||||
Pillow
|
Pillow
|
||||||
numpy
|
numpy
|
||||||
|
pytz
|
|
@ -52,7 +52,8 @@ class TimeAnnouncement(MyDraw):
|
||||||
if (int(max_time) <= 1):
|
if (int(max_time) <= 1):
|
||||||
text = "< 1 min"
|
text = "< 1 min"
|
||||||
elif (int(min_time) >= 10):
|
elif (int(min_time) >= 10):
|
||||||
text = "> 10 min"
|
print(max_time)
|
||||||
|
text = f"> {max_time} min"
|
||||||
else:
|
else:
|
||||||
text = f'{min_time} a {max_time} min'
|
text = f'{min_time} a {max_time} min'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue