Add diagnosis script and refactor UDP receiver.
This commit is contained in:
13
scripts/http_diagnosis.py
Normal file
13
scripts/http_diagnosis.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import requests
|
||||||
|
|
||||||
|
r = requests.get("http://wordclock.local/cmd?diag=reset_info")
|
||||||
|
print(r.status_code)
|
||||||
|
print(r.text)
|
||||||
|
|
||||||
|
r = requests.get("http://wordclock.local/cmd?diag=sketch_info")
|
||||||
|
print(r.status_code)
|
||||||
|
print(r.text)
|
||||||
|
|
||||||
|
r = requests.get("http://wordclock.local/cmd?diag=device_info")
|
||||||
|
print(r.status_code)
|
||||||
|
print(r.text)
|
||||||
@@ -4,15 +4,17 @@ import queue
|
|||||||
import socket
|
import socket
|
||||||
import struct
|
import struct
|
||||||
import sys
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
LOG_PATH = Path("C:/temp/wordclock_log.txt")
|
||||||
|
|
||||||
def setup_logging():
|
def setup_logging():
|
||||||
FORMAT = "%(asctime)s %(message)s"
|
FORMAT = "%(asctime)s %(message)s"
|
||||||
logging.basicConfig(format=FORMAT, level=logging.INFO)
|
logging.basicConfig(format=FORMAT, level=logging.INFO)
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
#handler = logging.StreamHandler(sys.stdout)
|
handler = logging.FileHandler(LOG_PATH)
|
||||||
#handler.setLevel(logging.INFO)
|
handler.setLevel(logging.INFO)
|
||||||
#logger.addHandler(handler)
|
logger.addHandler(handler)
|
||||||
return logger
|
return logger
|
||||||
|
|
||||||
|
|
||||||
@@ -42,33 +44,9 @@ mreq = struct.pack("4s4s", group, socket.inet_aton(get_ip_address()))
|
|||||||
sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
|
sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
|
||||||
|
|
||||||
logger.info("Ready")
|
logger.info("Ready")
|
||||||
saveCounter = 0
|
|
||||||
|
|
||||||
buffer = queue.Queue(20)
|
|
||||||
|
|
||||||
# Receive/respond loop
|
# Receive/respond loop
|
||||||
while True:
|
while True:
|
||||||
data, address = sock.recvfrom(1024)
|
data, address = sock.recvfrom(1024)
|
||||||
data_str = data.decode("utf-8").strip()
|
data_str = data.decode("utf-8").strip()
|
||||||
logger.info(data_str)
|
logger.info(data_str)
|
||||||
data_str = datetime.now().strftime("%b-%d-%Y_%H%M%S") + ": " + data_str
|
|
||||||
buffer.put(data_str)
|
|
||||||
if buffer.full():
|
|
||||||
buffer.get()
|
|
||||||
|
|
||||||
if "NTP-Update not successful" in data_str or "Start program" in data_str:
|
|
||||||
f = open("log.txt", "a")
|
|
||||||
while not buffer.empty():
|
|
||||||
f.write(buffer.get())
|
|
||||||
f.write("\n")
|
|
||||||
f.close()
|
|
||||||
saveCounter = 20
|
|
||||||
|
|
||||||
if saveCounter > 0:
|
|
||||||
f = open("log.txt", "a")
|
|
||||||
f.write(data_str)
|
|
||||||
f.write("\n")
|
|
||||||
if saveCounter == 1:
|
|
||||||
f.write("\n")
|
|
||||||
f.close()
|
|
||||||
saveCounter -= 1
|
|
||||||
|
|||||||
BIN
scripts/requirements.txt
Normal file
BIN
scripts/requirements.txt
Normal file
Binary file not shown.
Reference in New Issue
Block a user