105 lines
3.5 KiB
Python
105 lines
3.5 KiB
Python
|
#!/usr/bin/env python3
|
|||
|
"""
|
|||
|
机器狗控制系统启动脚本
|
|||
|
提供多种启动方式的便捷入口
|
|||
|
"""
|
|||
|
|
|||
|
import sys
|
|||
|
import os
|
|||
|
import argparse
|
|||
|
|
|||
|
# 添加当前目录到Python路径
|
|||
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|||
|
|
|||
|
from main import main, legacy_main, run_complete_task_mode, run_test_mode, run_interactive_test_mode
|
|||
|
|
|||
|
def print_usage():
|
|||
|
"""打印使用说明"""
|
|||
|
print("="*70)
|
|||
|
print(" 机器狗控制系统启动脚本")
|
|||
|
print("="*70)
|
|||
|
print("使用方法:")
|
|||
|
print(" python start.py [选项]")
|
|||
|
print()
|
|||
|
print("选项:")
|
|||
|
print(" -h, --help 显示此帮助信息")
|
|||
|
print(" -m, --mode MODE 直接启动指定模式")
|
|||
|
print(" MODE可以是: task, test, interactive")
|
|||
|
print(" -l, --legacy 使用原始模式(直接运行完整任务)")
|
|||
|
print(" -i, --interactive 启动交互式菜单(默认)")
|
|||
|
print()
|
|||
|
print("模式说明:")
|
|||
|
print(" task - 完整任务模式:运行完整的任务1-5流程")
|
|||
|
print(" test - 测试模式:进入子运动函数测试菜单")
|
|||
|
print(" interactive - 交互式测试:快速命令行测试界面")
|
|||
|
print(" legacy - 原始模式:直接运行完整任务(兼容旧版)")
|
|||
|
print()
|
|||
|
print("示例:")
|
|||
|
print(" python start.py # 启动交互式菜单")
|
|||
|
print(" python start.py -m task # 直接运行完整任务")
|
|||
|
print(" python start.py -m test # 直接进入测试模式")
|
|||
|
print(" python start.py -m interactive # 直接进入交互式测试")
|
|||
|
print(" python start.py -l # 使用原始模式")
|
|||
|
print("="*70)
|
|||
|
|
|||
|
def main_cli():
|
|||
|
"""命令行主函数"""
|
|||
|
parser = argparse.ArgumentParser(
|
|||
|
description="机器狗控制系统启动脚本",
|
|||
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|||
|
epilog="""
|
|||
|
示例:
|
|||
|
python start.py # 启动交互式菜单
|
|||
|
python start.py -m task # 直接运行完整任务
|
|||
|
python start.py -m test # 直接进入测试模式
|
|||
|
python start.py -m interactive # 直接进入交互式测试
|
|||
|
python start.py -l # 使用原始模式
|
|||
|
"""
|
|||
|
)
|
|||
|
|
|||
|
parser.add_argument(
|
|||
|
'-m', '--mode',
|
|||
|
choices=['task', 'test', 'interactive'],
|
|||
|
help='直接启动指定模式'
|
|||
|
)
|
|||
|
|
|||
|
parser.add_argument(
|
|||
|
'-l', '--legacy',
|
|||
|
action='store_true',
|
|||
|
help='使用原始模式(直接运行完整任务)'
|
|||
|
)
|
|||
|
|
|||
|
parser.add_argument(
|
|||
|
'-i', '--interactive',
|
|||
|
action='store_true',
|
|||
|
help='启动交互式菜单(默认)'
|
|||
|
)
|
|||
|
|
|||
|
args = parser.parse_args()
|
|||
|
|
|||
|
try:
|
|||
|
if args.legacy:
|
|||
|
print("🔄 启动原始模式...")
|
|||
|
legacy_main()
|
|||
|
elif args.mode == 'task':
|
|||
|
print("🚀 启动完整任务模式...")
|
|||
|
run_complete_task_mode()
|
|||
|
elif args.mode == 'test':
|
|||
|
print("🔧 启动测试模式...")
|
|||
|
run_test_mode()
|
|||
|
elif args.mode == 'interactive':
|
|||
|
print("⚡ 启动交互式测试模式...")
|
|||
|
run_interactive_test_mode()
|
|||
|
else:
|
|||
|
# 默认启动交互式菜单
|
|||
|
print("🎯 启动交互式菜单...")
|
|||
|
main()
|
|||
|
|
|||
|
except KeyboardInterrupt:
|
|||
|
print("\n👋 程序被用户中断,再见!")
|
|||
|
except Exception as e:
|
|||
|
print(f"❌ 发生错误: {e}")
|
|||
|
sys.exit(1)
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
main_cli()
|