Skip to content

Commit f0c9842

Browse files
committed
feat: update
1 parent aab5c92 commit f0c9842

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import asyncio
2+
import json
3+
4+
async def send_rpc_request(host: str, port: int, request: dict) -> dict:
5+
try:
6+
print(f"Connecting to {host}:{port}...")
7+
# 使用位置参数而不是关键字参数
8+
reader, writer = await asyncio.open_connection(host, port)
9+
10+
request_str = json.dumps(request) + "\n"
11+
print(f"Sending request: {request_str.strip()}")
12+
writer.write(request_str.encode())
13+
await writer.drain()
14+
15+
# Wait for response line
16+
print("Waiting for response...")
17+
response_line = await reader.readline()
18+
19+
writer.close()
20+
await writer.wait_closed()
21+
22+
if response_line:
23+
try:
24+
response = json.loads(response_line.decode())
25+
print(f"Received response: {json.dumps(response)}")
26+
return response
27+
except ValueError as e: # 兼容 MicroPython
28+
print(f"JSON decode error: {str(e)}")
29+
return {}
30+
else:
31+
print("No response received.")
32+
return {}
33+
34+
except Exception as e:
35+
print(f"RPC Request Failed: {str(e)}")
36+
return {}
37+
38+
async def main():
39+
host = "127.0.0.1" # ⚠️ 替换为实际 IP 地址
40+
41+
wifi_request = {
42+
"method": "wifi.scan",
43+
"params": {},
44+
"id": 1
45+
}
46+
47+
media_request = {
48+
"method": "media.play",
49+
"params": {},
50+
"id": 2
51+
}
52+
53+
print("Requesting WiFi scan...")
54+
wifi_response = await send_rpc_request(host, 8080, wifi_request)
55+
print(wifi_response)
56+
57+
print("Requesting Media play...")
58+
media_response = await send_rpc_request(host, 8081, media_request)
59+
print(media_response)
60+
61+
if __name__ == "__main__":
62+
asyncio.run(main())

0 commit comments

Comments
 (0)