Files
fluent_widgets_pyside6/app/service/vibrate.py

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)