first commit
This commit is contained in:
171
timer_NN.py
Normal file
171
timer_NN.py
Normal file
@@ -0,0 +1,171 @@
|
||||
import sys
|
||||
import json
|
||||
from socket import *
|
||||
from datetime import datetime
|
||||
import logging
|
||||
import os
|
||||
import time
|
||||
import binascii
|
||||
import requests
|
||||
|
||||
HOST = "192.168.0.7"
|
||||
PORT = 40004
|
||||
PATH = (
|
||||
r"D:\ГРАФИКА\БАСКЕТБОЛ\ЕДИНАЯ ЛИГА ВТБ 2022-2023\python\JSON\timer_basketball.json"
|
||||
)
|
||||
|
||||
session = requests.Session()
|
||||
session.headers.update({"Connection": "keep-alive"})
|
||||
|
||||
|
||||
def hexspace(string, length):
|
||||
return " ".join(string[i : i + length] for i in range(0, len(string), length))
|
||||
|
||||
|
||||
def timer(line):
|
||||
temp_new = [int(t, 16) for t in line.split()]
|
||||
minutes = temp_new[4]
|
||||
seconds = temp_new[5]
|
||||
milliseconds = temp_new[6]
|
||||
timer_str = (
|
||||
f"{minutes}:{seconds:02d}" if minutes != 0 else f"{seconds}.{milliseconds}"
|
||||
)
|
||||
return timer_str
|
||||
|
||||
|
||||
def attack_time(line):
|
||||
temp_new = [int(t, 16) for t in line.split()]
|
||||
path_pic = r"D:\ГРАФИКА\БАСКЕТБОЛ\ЕДИНАЯ ЛИГА ВТБ 2022-2023\Scorebug Indicators"
|
||||
if temp_new[7] != 2:
|
||||
seconds = temp_new[5]
|
||||
milliseconds = temp_new[6]
|
||||
if int(seconds) > 4:
|
||||
if int(milliseconds) >= 5:
|
||||
seconds = int(seconds) + 1
|
||||
else:
|
||||
seconds = seconds
|
||||
time_attack = seconds
|
||||
else:
|
||||
time_attack = f"{seconds}.{milliseconds}"
|
||||
if time_attack == "0.0":
|
||||
time_attack = ""
|
||||
# time_attack = (
|
||||
# temp_new[5]
|
||||
# if temp_new[5] > 4
|
||||
# else f"{temp_new[5]}.{temp_new[6]}"
|
||||
# if f"{temp_new[5]}.{temp_new[6]}" != "0.0"
|
||||
# else ""
|
||||
# )
|
||||
path_pic = path_pic + (
|
||||
"\\24Sec_Orange.png"
|
||||
if temp_new[5] > 4
|
||||
else (
|
||||
"\\24Sec_Red.png"
|
||||
if f"{temp_new[5]}.{temp_new[6]}" != "0.0"
|
||||
else "\\24Sec_empty.png"
|
||||
)
|
||||
)
|
||||
else:
|
||||
time_attack = "" # temp_new[-2] == 1 - таймер идёт | 2 - таймер стоит | 0 - таймер не отображён
|
||||
path_pic = path_pic + "\\24Sec_empty.png"
|
||||
return time_attack, path_pic
|
||||
|
||||
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):
|
||||
cdata = binascii.hexlify(line)
|
||||
ddata = cdata.decode("utf-8").upper()
|
||||
edata = hexspace(ddata, 2)
|
||||
|
||||
temp_line = ""
|
||||
line = ""
|
||||
if len(edata.split()) in [2, 31, 32, 1]:
|
||||
if temp_line == "":
|
||||
temp_line = edata
|
||||
else:
|
||||
line = temp_line + edata
|
||||
temp_line = ""
|
||||
else:
|
||||
line = edata
|
||||
|
||||
data = line.split("FE FF")
|
||||
path_pic_foul = (
|
||||
r"D:\ГРАФИКА\БАСКЕТБОЛ\ЕДИНАЯ ЛИГА ВТБ 2022-2023\Scorebug Indicators"
|
||||
)
|
||||
diff1, diff2 = 0, 0
|
||||
for d in data:
|
||||
if d != "":
|
||||
temp_d = d.strip()
|
||||
if "08 01" in temp_d[:5] and str(temp_d.split()[-2])[0] == "8":
|
||||
timer_str = timer(temp_d)
|
||||
send_data("TIMER.Text", timer_str)
|
||||
aaaaa = temp_d.split()[-2]
|
||||
elif "08 03" in temp_d[:5]:
|
||||
time_attack, path_pic = attack_time(temp_d)
|
||||
send_data("24sec.Text", time_attack)
|
||||
aaaa = temp_d.split()[-2], int(temp_d.split()[-2], 16)
|
||||
elif "0D 1F" in temp_d[:5]:
|
||||
send_data("SCORE1.Text", int(temp_d.split()[2], 16))
|
||||
send_data("SCORE2.Text", int(temp_d.split()[3], 16))
|
||||
|
||||
|
||||
def read_logs():
|
||||
|
||||
score1, score2 = 0, 0
|
||||
with open("timer_NN_1.log", "r") as file:
|
||||
# with open("timer_NN_test.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])
|
||||
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_NN_{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)
|
||||
print(data)
|
||||
logging.debug(data)
|
||||
parse(data)
|
||||
|
||||
except KeyboardInterrupt:
|
||||
tcp_socket.close()
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
main()
|
||||
# read_logs()
|
||||
except KeyboardInterrupt:
|
||||
sys.exit(1)
|
||||
Reference in New Issue
Block a user