Migrate MCP and utilities to CircuitPython, including color GIF and volume fixes
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import urllib.request
|
||||
import json
|
||||
import time
|
||||
|
||||
def call_mcp(method, params={}):
|
||||
url = "http://192.168.68.128/api/mcp"
|
||||
payload = {
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"method": method,
|
||||
"params": params
|
||||
}
|
||||
req = urllib.request.Request(
|
||||
url,
|
||||
data=json.dumps(payload).encode("utf-8"),
|
||||
headers={"Content-Type": "application/json"},
|
||||
method="POST"
|
||||
)
|
||||
try:
|
||||
with urllib.request.urlopen(req, timeout=5.0) as resp:
|
||||
return json.loads(resp.read().decode("utf-8"))
|
||||
except Exception as e:
|
||||
return {"error": str(e)}
|
||||
|
||||
# 1. Fetch start stats
|
||||
print("Fetching start stats...")
|
||||
res_start = call_mcp("tools/call", {"name": "get_stream_stats", "arguments": {}})
|
||||
print(json.dumps(res_start, indent=2))
|
||||
|
||||
# 2. Wait 3 seconds
|
||||
print("Waiting 3 seconds...")
|
||||
time.sleep(3.0)
|
||||
|
||||
# 3. Fetch end stats
|
||||
print("Fetching end stats...")
|
||||
res_end = call_mcp("tools/call", {"name": "get_stream_stats", "arguments": {}})
|
||||
print(json.dumps(res_end, indent=2))
|
||||
|
||||
# Calculate FPS
|
||||
try:
|
||||
start_stats = json.loads(res_start["result"]["content"][0]["text"])
|
||||
end_stats = json.loads(res_end["result"]["content"][0]["text"])
|
||||
frames_diff = end_stats["frames_drawn"] - start_stats["frames_drawn"]
|
||||
packets_diff = end_stats["udp_packets_received"] - start_stats["udp_packets_received"]
|
||||
print(f"\nResult: Drew {frames_diff} frames in 3.0 seconds ({frames_diff / 3.0:.1f} FPS)")
|
||||
print(f"Packets received: {packets_diff} in 3.0 seconds ({packets_diff / 3.0:.1f} pps)")
|
||||
except Exception as e:
|
||||
print("Failed to calculate FPS:", e)
|
||||
Reference in New Issue
Block a user