From 889d554f19ff058225c468991113708acb7bf513 Mon Sep 17 00:00:00 2001 From: Xuwznln <18435084+Xuwznln@users.noreply.github.com> Date: Thu, 9 Oct 2025 16:49:07 +0800 Subject: [PATCH] Fix: remove abstractmethod decroation for on_elevator_move --- docs/client.rst | 1 + elevator_saga/client/base_controller.py | 2 +- .../scripts/client_examples/simple_example.py | 11 +++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/client.rst b/docs/client.rst index 16b2d6d..7690215 100644 --- a/docs/client.rst +++ b/docs/client.rst @@ -284,6 +284,7 @@ The controller provides these event handlers: - ``on_passenger_alight(elevator, passenger, floor)``: Passenger alights - ``on_elevator_passing_floor(elevator, floor, direction)``: Elevator passes floor - ``on_elevator_approaching(elevator, floor, direction)``: Elevator about to arrive +- ``on_elevator_move(elevator, from_position, to_position, direction, status)``: Elevator moves Complete Example ---------------- diff --git a/elevator_saga/client/base_controller.py b/elevator_saga/client/base_controller.py index 5bee045..4d9f297 100644 --- a/elevator_saga/client/base_controller.py +++ b/elevator_saga/client/base_controller.py @@ -171,7 +171,7 @@ class ElevatorController(ABC): """ pass - @abstractmethod + # @abstractmethod 为了兼容性暂不强制要求elevator_move必须实现 def on_elevator_move( self, elevator: ProxyElevator, from_position: float, to_position: float, direction: str, status: str ) -> None: diff --git a/elevator_saga/scripts/client_examples/simple_example.py b/elevator_saga/scripts/client_examples/simple_example.py index 1b0d9ae..5271204 100644 --- a/elevator_saga/scripts/client_examples/simple_example.py +++ b/elevator_saga/scripts/client_examples/simple_example.py @@ -138,6 +138,17 @@ class ElevatorBusController(ElevatorController): elevator.go_to_floor(elevator.target_floor + 1, immediate=True) print(f" 不让0号电梯上行停站,设定新目标楼层 {elevator.target_floor + 1}") + def on_elevator_move( + self, elevator: ProxyElevator, from_position: float, to_position: float, direction: str, status: str + ) -> None: + """ + 电梯移动时的回调 + 可以在这里记录电梯移动信息,用于调试或性能分析 + """ + # 取消注释以显示电梯移动信息 + # print(f"🚀 电梯 E{elevator.id} 移动: {from_position:.1f} -> {to_position:.1f} ({direction}, {status})") + pass + if __name__ == "__main__": algorithm = ElevatorBusController(debug=True)