wanshenmean
2 天以前 486fc00f4cf32e2a3239b00fe173264de25f1286
feat(RobotState): 新增 IRobotStateRepository 接口
已添加1个文件
53 ■■■■■ 文件已修改
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/IRobotStateRepository.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/IRobotStateRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,53 @@
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_ITaskInfoRepository
{
    /// <summary>
    /// æœºæ¢°æ‰‹çŠ¶æ€ä»“å‚¨æŽ¥å£
    /// </summary>
    /// <remarks>
    /// å®šä¹‰æœºæ¢°æ‰‹çŠ¶æ€çš„æ•°æ®åº“è®¿é—®æ“ä½œã€‚
    /// å¤æ‚对象(RobotCrane、CurrentTask、数组等)在调用方使用强类型,
    /// åœ¨æ­¤æŽ¥å£å±‚面以 Dt_RobotState å®žä½“为操作单位。
    /// </remarks>
    public interface IRobotStateRepository
    {
        /// <summary>
        /// æ ¹æ® IP åœ°å€èŽ·å–æœºæ¢°æ‰‹çŠ¶æ€
        /// </summary>
        /// <param name="ipAddress">设备 IP åœ°å€</param>
        /// <returns>状态实体,不存在则返回 null</returns>
        Dt_RobotState? GetByIp(string ipAddress);
        /// <summary>
        /// èŽ·å–æˆ–åˆ›å»ºæœºæ¢°æ‰‹çŠ¶æ€
        /// </summary>
        /// <param name="ipAddress">设备 IP åœ°å€</param>
        /// <param name="robotCrane">机器人设备信息,用于初始化新状态</param>
        /// <returns>状态实体</returns>
        Dt_RobotState GetOrCreate(string ipAddress, RobotCraneDevice robotCrane);
        /// <summary>
        /// å®‰å…¨æ›´æ–°æœºæ¢°æ‰‹çŠ¶æ€ï¼ˆä¹è§‚é”ï¼‰
        /// </summary>
        /// <param name="ipAddress">设备 IP åœ°å€</param>
        /// <param name="newState">新状态实体(RowVersion ä¼šè¢«æ›´æ–°ï¼‰</param>
        /// <param name="expectedRowVersion">期望的行版本号(更新前的版本)</param>
        /// <returns>是否更新成功;false è¡¨ç¤ºç‰ˆæœ¬å†²çªæˆ–记录不存在</returns>
        bool TryUpdate(string ipAddress, Dt_RobotState newState, byte[] expectedRowVersion);
        /// <summary>
        /// å°† Dt_RobotState å®žä½“转换为 RobotSocketState å†…存对象
        /// </summary>
        /// <param name="entity">数据库实体</param>
        /// <returns>内存状态对象</returns>
        RobotSocketState ToSocketState(Dt_RobotState entity);
        /// <summary>
        /// å°† RobotSocketState å†…存对象转换为 Dt_RobotState å®žä½“
        /// </summary>
        /// <param name="state">内存状态对象</param>
        /// <returns>数据库实体</returns>
        Dt_RobotState ToEntity(RobotSocketState state);
    }
}