-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_android_app.py
More file actions
122 lines (108 loc) · 4.56 KB
/
Copy pathtest_android_app.py
File metadata and controls
122 lines (108 loc) · 4.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/usr/bin/env python3
"""
GWaken Android App 核心功能测试
此脚本用于测试Android应用的核心功能
"""
import sys
import os
import json
from datetime import datetime
# 添加项目路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'sleep_monitor'))
def test_android_app_core():
"""测试Android应用的核心功能"""
print("=== GWaken Android App 核心功能测试 ===\n")
# 1. 测试配置加载
print("1. 测试配置加载...")
try:
config_path = os.path.join(os.path.dirname(__file__), 'sleep_monitor', 'config.json')
with open(config_path, 'r', encoding='utf-8') as f:
config = json.load(f)
print(" ✓ 配置加载成功")
print(f" - 睡眠检测采样率: {config['sleep_detection']['sampling_rate']}")
print(f" - 唤醒时间: {config['alarm_settings']['wake_time']}")
except Exception as e:
print(f" ✗ 配置加载失败: {e}")
return False
# 2. 测试睡眠阶段检测器
print("\n2. 测试睡眠阶段检测器...")
try:
from sleep_monitor.sleep_analysis.sleep_stage_detector import SleepStageDetector
detector = SleepStageDetector(config)
print(" ✓ 睡眠阶段检测器初始化成功")
except Exception as e:
print(f" ✗ 睡眠阶段检测器初始化失败: {e}")
return False
# 3. 测试智能闹钟
print("\n3. 测试智能闹钟...")
try:
from sleep_monitor.alarm.smart_alarm import SmartAlarm
alarm = SmartAlarm(config)
print(" ✓ 智能闹钟初始化成功")
print(f" - 唤醒时间: {alarm.get_alarm_status()['wake_time']}")
except Exception as e:
print(f" ✗ 智能闹钟初始化失败: {e}")
return False
# 4. 测试传感器(使用模拟传感器)
print("\n4. 测试传感器数据...")
try:
from sleep_monitor.sensors.sensor_simulator import SensorSimulator
sensor = SensorSimulator(config)
sensor_data = sensor.get_sensor_data()
print(" ✓ 传感器数据获取成功")
print(f" - 心率: {sensor_data['heart_rate']}")
print(f" - 体动: {sensor_data['movement']}")
print(f" - 睡眠阶段: {sensor_data['sleep_phase']}")
except Exception as e:
print(f" ✗ 传感器数据获取失败: {e}")
return False
# 5. 测试睡眠阶段检测
print("\n5. 测试睡眠阶段检测...")
try:
test_data = {
'timestamp': datetime.now().isoformat(),
'heart_rate': 65,
'movement': 1.5
}
sleep_stage = detector.detect_stage(test_data)
print(f" ✓ 睡眠阶段检测成功: {sleep_stage}")
# 获取睡眠总结
summary = detector.get_sleep_summary()
print(f" - 睡眠总结: {summary}")
except Exception as e:
print(f" ✗ 睡眠阶段检测失败: {e}")
return False
# 6. 测试闹钟逻辑
print("\n6. 测试闹钟逻辑...")
try:
current_time = datetime.now()
should_wake = alarm.should_wake_up(sleep_stage, current_time)
print(f" ✓ 闹钟逻辑测试完成")
print(f" - 当前阶段: {sleep_stage}, 应该唤醒: {should_wake}")
except Exception as e:
print(f" ✗ 闹钟逻辑测试失败: {e}")
return False
print("\n=== 测试结果 ===")
print("✓ 所有核心功能测试通过!")
print("\n项目已成功适配Android平台,包含以下功能:")
print("- 完整的睡眠阶段检测算法")
print("- 智能唤醒系统")
print("- Android兼容的蓝牙传感器模块")
print("- Kivy移动UI界面")
print("- 配置文件兼容性")
print("\n要构建完整的Android APK,请运行:")
print("cd /work/sleep/GWaken-Android && python -c \"import os; os.system('buildozer android debug')\"")
return True
if __name__ == "__main__":
print("启动GWaken Android App核心功能测试...")
success = test_android_app_core()
if success:
print("\n🎉 测试成功完成!项目已准备好构建Android APK。")
print("\nAndroid应用文件位置:")
print("- 主应用文件: /work/sleep/GWaken-Android/main.py")
print("- 配置文件: /work/sleep/GWaken-Android/config.json")
print("- 构建脚本: /work/sleep/GWaken-Android/build_apk.sh")
print("- Buildozer配置: /work/sleep/GWaken-Android/buildozer.spec")
else:
print("\n❌ 测试失败,请检查错误信息。")
sys.exit(1)