Files
TIMERS/timer_stramatel.py

145 lines
4.7 KiB
Python

import sys
import json
from socket import *
from datetime import datetime
import logging
import os
import time
import requests
SETTING = "19200,RS-485"
HOST = "192.168.127.254"
PORT = 1993
session = requests.Session()
session.headers.update({"Connection": "keep-alive"})
def send_data(name, value):
url = "http://127.0.0.1:8088/API/"
par = "SetText" if name.split(".")[1] == "Text" else "SetImage"
params = {
"Function": par,
# "Input": 41,
"Input": "SCOREBUG",
"SelectedName": name,
"Value": value,
}
session.get(url, params=params)
def parse(line):
if len(line) > 6:
try:
timer_bool = 0
if b"\xf87" in line:
temp_new = str(line.split(b"\xf87")[1])
elif b"\xf88" in line:
temp_new = str(line.split(b"\xf88")[1])
elif b"\xf83" in line:
temp_new = str(line.split(b"\xf83")[1])
timer_bool = 1
print(line)
timer_temp = temp_new[4:8]
# print(str(timer_temp) == '\\xf2')
if timer_temp != "\\xf2":
if timer_temp[-1] != " ":
minutes = int(timer_temp[:2])
seconds = timer_temp[2:]
timer_str = f"{minutes}:{seconds}"
else:
seconds = int(timer_temp[0:2])
milliseconds = int(timer_temp[2:])
timer_str = f"{seconds}.{milliseconds}"
if timer_bool == 1:
quarter = temp_new[14]
points1 = (temp_new[8:11]).strip()
points2 = (temp_new[11:14]).strip()
fouls1 = temp_new[15]
fouls2 = temp_new[16]
attack_display = temp_new[51:53]
if attack_display == "30":
time_attack = ""
path_pic = path_pic + "\\24Sec_empty.png"
else:
word_to_int = "ABCDEFGHI@"
time_attack_temp = temp_new[48:50]
# print(time_attack_temp)
# print(word_to_int.index(time_attack_temp[1])+1 if time_attack_temp[1] != '@' else '0')
if time_attack_temp[1] in word_to_int:
time_attack = f"{time_attack_temp[0]}.{word_to_int.index(time_attack_temp[1])+1 if time_attack_temp[1] != '@' else '0'}"
path_pic = path_pic + "\\24Sec_Red.png"
else:
time_attack = (
int(time_attack_temp)
if time_attack_temp != " "
else time_attack_temp
)
path_pic = path_pic + "\\24Sec_Orange.png"
if time_attack == "0.0":
time_attack = ""
path_pic = path_pic + "\\24Sec_empty.png"
if timer_str == "0:00":
timer_str = "0.0"
send_data("TIMER.Text", timer_str)
send_data("24sec.Text", time_attack)
send_data("SCORE1.Text", points1)
send_data("SCORE2.Text", points2)
except Exception as ex:
print(ex)
pass
def read_logs():
with open(
r"C:\Users\soule\Downloads\Telegram Desktop\timer_Megasport_Nport_2024-03-05_20-00-17.log",
"r",
) as file:
for line in file:
parts = line.strip().split(" DEBUG ")
if len(parts) == 2:
timestamp = parts[0][1:]
data = eval(parts[1])
if b"\xf83" in data or b"\xf88" in data or b"\xf87" in data:
parse(data)
time.sleep(0.1)
def main():
current_time = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
if not os.path.isdir("LOGS"):
os.mkdir("LOGS")
LogFileName = f"LOGS/timer_Megasport_Nport_{current_time}.log"
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s %(levelname)s %(message)s",
filename=LogFileName,
filemode="w",
)
try:
tcp_socket = socket(AF_INET, SOCK_STREAM)
tcp_socket.connect((HOST, PORT))
data = str.encode("hello")
tcp_socket.send(data)
data = bytes.decode(data)
while True:
data = tcp_socket.recv(1024)
logging.debug(data)
if b"\xf83" in data or b"\xf88" in data or b"\xf87" in data:
parse(data)
except KeyboardInterrupt:
tcp_socket.close()
sys.exit(1)
if __name__ == "__main__":
try:
main()
# read_logs()
except KeyboardInterrupt:
sys.exit(1)