mock_shaanxi_gateway.py 1.4 KB

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/env python3
  2. """本地启动协议模拟网关,默认仅监听 127.0.0.1。"""
  3. import argparse
  4. from pathlib import Path
  5. import sys
  6. sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
  7. def main():
  8. parser = argparse.ArgumentParser()
  9. parser.add_argument("--data-dir", type=Path, required=True)
  10. parser.add_argument("--port", type=int, default=8766)
  11. parser.add_argument("--raw-files", action="store_true", help="直接提供测试目录原件,不加载人工转录夹具")
  12. parser.add_argument("--agent-code", default="mock-main-fan", help="预先授权的取数身份,无需运行时注册")
  13. parser.add_argument('--operating-data-dir',type=Path,default=Path(__file__).resolve().parents[1]/'examples/main_fan',
  14. help='显式合成的整机开停和风量JSON所在目录')
  15. args = parser.parse_args()
  16. import uvicorn
  17. from mock_gateway.main_fan import MockState, create_app
  18. from mock_gateway.operating_data import load_operating_data
  19. state = MockState.from_raw_files(args.data_dir) if args.raw_files else MockState(args.data_dir.resolve())
  20. state.data_agents = {args.agent_code}
  21. state.operating_data = load_operating_data(args.operating_data_dir,base_url=f'http://127.0.0.1:{args.port}')
  22. state.file_index()
  23. uvicorn.run(create_app(state), host="127.0.0.1", port=args.port)
  24. if __name__ == "__main__":
  25. main()