using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_ITaskInfoRepository { /// /// 机械手状态仓储接口 /// /// /// 定义机械手状态的数据库访问操作。 /// 复杂对象(RobotCrane、CurrentTask、数组等)在调用方使用强类型, /// 在此接口层面以 Dt_RobotState 实体为操作单位。 /// public interface IRobotStateRepository { /// /// 根据 IP 地址获取机械手状态 /// /// 设备 IP 地址 /// 状态实体,不存在则返回 null Dt_RobotState? GetByIp(string ipAddress); /// /// 获取或创建机械手状态 /// /// 设备 IP 地址 /// 机器人设备信息,用于初始化新状态 /// 状态实体 Dt_RobotState GetOrCreate(string ipAddress, RobotCraneDevice robotCrane); /// /// 安全更新机械手状态(乐观锁) /// /// 设备 IP 地址 /// 新状态实体(RowVersion 会被更新) /// 期望的行版本号(更新前的版本) /// 是否更新成功;false 表示版本冲突或记录不存在 bool TryUpdate(string ipAddress, Dt_RobotState newState, byte[] expectedRowVersion); /// /// 将 Dt_RobotState 实体转换为 RobotSocketState 内存对象 /// /// 数据库实体 /// 内存状态对象 RobotSocketState ToSocketState(Dt_RobotState entity); /// /// 将 RobotSocketState 内存对象转换为 Dt_RobotState 实体 /// /// 内存状态对象 /// 数据库实体 Dt_RobotState ToEntity(RobotSocketState state); } }