chore: import R0nY3n/LTE_manager main snapshot
This commit is contained in:
+134
@@ -0,0 +1,134 @@
|
||||
import sys
|
||||
import time
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
from incoming_call import show_incoming_call
|
||||
from sound_utils import SoundManager
|
||||
import serial
|
||||
|
||||
def simulate_incoming_call():
|
||||
"""模拟来电测试程序"""
|
||||
print("来电模拟器")
|
||||
print("-" * 50)
|
||||
|
||||
# 测试来电对话框
|
||||
print("测试1: 显示来电对话框")
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
# 创建声音管理器
|
||||
sound_manager = SoundManager()
|
||||
|
||||
# 播放来电铃声
|
||||
sound_manager.play_incoming_call()
|
||||
print("播放来电铃声...")
|
||||
|
||||
# 显示来电对话框
|
||||
caller_number = "+8613800138000"
|
||||
print(f"显示来电: {caller_number}")
|
||||
|
||||
result = show_incoming_call(caller_number)
|
||||
|
||||
# 停止来电铃声
|
||||
sound_manager.stop_incoming_call()
|
||||
|
||||
# 显示结果
|
||||
print(f"用户选择了: {'接听' if result else '拒绝'}")
|
||||
|
||||
# 测试完成
|
||||
print("=" * 50)
|
||||
print("测试完成")
|
||||
|
||||
def test_module_ring_function():
|
||||
"""测试模块的来电功能"""
|
||||
print("LTE模块来电测试")
|
||||
print("-" * 50)
|
||||
|
||||
# 获取COM口
|
||||
port = input("请输入AT命令COM口: ")
|
||||
if not port:
|
||||
print("未提供COM口,测试结束")
|
||||
return
|
||||
|
||||
# 打开串口
|
||||
try:
|
||||
ser = serial.Serial(port, 115200, timeout=1)
|
||||
print(f"成功打开COM口 {port}")
|
||||
except Exception as e:
|
||||
print(f"无法打开COM口: {str(e)}")
|
||||
return
|
||||
|
||||
# 发送AT命令检查模块
|
||||
try:
|
||||
ser.write(b"AT\r")
|
||||
time.sleep(0.5)
|
||||
response = ser.read(ser.in_waiting).decode('utf-8', errors='replace')
|
||||
print(f"AT响应: {response}")
|
||||
|
||||
if "OK" not in response:
|
||||
print("模块没有响应AT命令,测试结束")
|
||||
ser.close()
|
||||
return
|
||||
except Exception as e:
|
||||
print(f"发送AT命令失败: {str(e)}")
|
||||
ser.close()
|
||||
return
|
||||
|
||||
# 主菜单
|
||||
while True:
|
||||
print("\n选择测试选项:")
|
||||
print("1. 模拟来电 (向模块发送AT+CLIP命令)")
|
||||
print("2. 等待实际来电")
|
||||
print("3. 退出")
|
||||
|
||||
choice = input("您的选择: ")
|
||||
|
||||
if choice == '1':
|
||||
# 模拟来电
|
||||
phone_number = input("请输入要模拟的来电号码: ")
|
||||
if not phone_number:
|
||||
phone_number = "+8613800138000"
|
||||
|
||||
# 发送RING和CLIP命令
|
||||
print(f"模拟来电: {phone_number}")
|
||||
ser.write(b"AT+CLIP=1\r")
|
||||
time.sleep(0.5)
|
||||
ser.read(ser.in_waiting) # 清除响应
|
||||
|
||||
# 发送RING和CLIP
|
||||
ser.write(b"RING\r\n")
|
||||
time.sleep(0.5)
|
||||
clip_cmd = f'AT+CLIP: "{phone_number}",129,"",0,"",0\r\n'
|
||||
ser.write(clip_cmd.encode())
|
||||
|
||||
print("模拟来电信号已发送,查看应用是否有响应")
|
||||
|
||||
elif choice == '2':
|
||||
# 等待实际来电
|
||||
print("请使用另一部手机拨打模块的电话号码...")
|
||||
print("按Enter键停止等待")
|
||||
input()
|
||||
|
||||
elif choice == '3':
|
||||
# 退出
|
||||
break
|
||||
|
||||
else:
|
||||
print("无效选择,请重试")
|
||||
|
||||
# 关闭串口
|
||||
ser.close()
|
||||
print("测试结束")
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("来电功能测试工具")
|
||||
print("=" * 50)
|
||||
print("1. 测试来电对话框")
|
||||
print("2. 测试LTE模块来电功能")
|
||||
|
||||
choice = input("请选择测试类型: ")
|
||||
|
||||
if choice == '1':
|
||||
simulate_incoming_call()
|
||||
elif choice == '2':
|
||||
test_module_ring_function()
|
||||
else:
|
||||
print("无效选择,测试结束")
|
||||
Reference in New Issue
Block a user