52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
import socket
|
|
import json
|
|
import time
|
|
|
|
set_vibrate_time = 5 # 震动时间 单位/秒
|
|
|
|
cmd_set_vibrate = { # 振动控制
|
|
"command": "set_vibrate",
|
|
"payload": {"time": set_vibrate_time}, # 单位S
|
|
}
|
|
|
|
|
|
# 使用 with 语句确保 socket 在使用完毕后正确关闭
|
|
def start_vibrate(host="192.168.58.25", port=5000):
|
|
try:
|
|
with socket.socket() as s:
|
|
s.connect((host, port))
|
|
s.sendall(json.dumps(cmd_set_vibrate).encode())
|
|
# print("已发送振动控制指令")
|
|
|
|
# 记录震动开始时间
|
|
recv_start_time = time.time()
|
|
|
|
# 接收响应, 检查 震动是否完成
|
|
data = s.recv(1024)
|
|
if data:
|
|
# 计算震动耗时(秒)
|
|
recv_elapsed_time = time.time() - recv_start_time
|
|
print("震动秒数:", recv_elapsed_time)
|
|
# print("收到响应:", data.decode())
|
|
response = json.loads(data.decode())
|
|
if response.get("vibrate_isok", False):
|
|
print("振动执行完成")
|
|
return True # 震动完成
|
|
else:
|
|
print("start_vibrate错误: 振动执行失败")
|
|
return False
|
|
|
|
else:
|
|
print("start_vibrate错误: 服务器无响应,连接已关闭")
|
|
return False
|
|
|
|
except (socket.error, json.JSONDecodeError, UnicodeDecodeError) as e:
|
|
print(f"start_vibrate错误: {e}")
|
|
return False
|
|
|
|
if __name__ == "__main__":
|
|
if start_vibrate():
|
|
print("震频完毕")
|
|
else:
|
|
print("震频发生错误")
|
|
exit(-1) |