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