mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2026-02-05 22:15:04 +00:00
* Add Device MockChiller Add device MockChiller * Add Device MockFilter * Add Device MockPump * Add Device MockRotavap * Add Device MockSeparator * Add Device MockStirrer * Add Device MockHeater * Add Device MockVacuum * Add Device MockSolenoidValve * Add Device Mock \_init_.py * 规范模拟设备代码与注册表信息 * 更改Mock大写文件夹名 * 删除大写目录 * Edited Mock device json * Match mock device with action * Edit mock device yaml * Add new action * Add Virtual Device, Action, YAML, Protocol for Organic Syn * 单独分类测试的protocol文件夹 * 更名Action --------- Co-authored-by: Xuwznln <18435084+Xuwznln@users.noreply.github.com>
90 lines
2.3 KiB
Python
90 lines
2.3 KiB
Python
import time
|
||
|
||
|
||
class MockSolenoidValve:
|
||
"""
|
||
模拟电磁阀设备类 - 简化版本
|
||
|
||
这个类提供了电磁阀的基本功能:开启、关闭和状态查询
|
||
"""
|
||
|
||
def __init__(self, port: str = "MOCK"):
|
||
"""
|
||
初始化MockSolenoidValve实例
|
||
|
||
Args:
|
||
port (str): 设备端口,默认为"MOCK"表示模拟设备
|
||
"""
|
||
self.port = port
|
||
self._status: str = "Idle"
|
||
self._valve_status: str = "Closed" # 阀门位置:Open, Closed
|
||
|
||
@property
|
||
def status(self) -> str:
|
||
"""设备状态 - 会被自动识别的设备属性"""
|
||
return self._status
|
||
|
||
@property
|
||
def valve_status(self) -> str:
|
||
"""阀门状态"""
|
||
return self._valve_status
|
||
|
||
def set_valve_status(self, status: str) -> str:
|
||
"""
|
||
设置阀门位置
|
||
|
||
Args:
|
||
position (str): 阀门位置,可选值:"Open", "Closed"
|
||
|
||
Returns:
|
||
str: 操作结果状态 ("Success", "Error")
|
||
"""
|
||
if status not in ["Open", "Closed"]:
|
||
self._status = "Error: Invalid position"
|
||
return "Error"
|
||
|
||
self._status = "Moving"
|
||
time.sleep(1) # 模拟阀门动作时间
|
||
|
||
self._valve_status = status
|
||
self._status = "Idle"
|
||
return "Success"
|
||
|
||
def open_valve(self) -> str:
|
||
"""打开阀门"""
|
||
return self.set_valve_status("Open")
|
||
|
||
def close_valve(self) -> str:
|
||
"""关闭阀门"""
|
||
return self.set_valve_status("Closed")
|
||
|
||
def get_valve_status(self) -> str:
|
||
"""获取阀门位置"""
|
||
return self._valve_status
|
||
|
||
def is_open(self) -> bool:
|
||
"""检查阀门是否打开"""
|
||
return self._valve_status == "Open"
|
||
|
||
def is_closed(self) -> bool:
|
||
"""检查阀门是否关闭"""
|
||
return self._valve_status == "Closed"
|
||
|
||
|
||
# 用于测试的主函数
|
||
if __name__ == "__main__":
|
||
valve = MockSolenoidValve()
|
||
|
||
print("启动电磁阀测试...")
|
||
print(f"初始状态: 位置={valve.valve_status}, 状态={valve.status}")
|
||
|
||
# 测试开启阀门
|
||
valve.open_valve()
|
||
print(f"开启后: 位置={valve.valve_status}, 状态={valve.status}")
|
||
|
||
# 测试关闭阀门
|
||
valve.close_valve()
|
||
print(f"关闭后: 位置={valve.valve_status}, 状态={valve.status}")
|
||
|
||
print("测试完成")
|