时间控制控制设计文档

更新记录

版本 日期 修改人 修改内容
1.0.0 2020年7月11日 杨卫东(100856) 新建文档
1.0.1 2020年7月22日 蔺浪(510525) 添加组件文档链接
1.0.2 2020年7月28日 杨卫东(100856) 更新接口

流程图

播放组件接口

提供给LUA端的AC接口

void TriggerPeriodTime(string periodjson)

简要说明:

  • 触发周期时间观察

属性:

参数名 必选 类型 说明
periodjson 周期观察json格式数据

返回值说明

  • void

void OnAccelerateEquipmentDelete()

简要说明:

  • 触发观察器材删除

    返回值说明

    • void

void AddListenerOnEnterWatchPoint(LuaFunction callback)

简要说明:

  • Lua接口—注册事件—进入观察点

属性:

参数名 必选 类型 说明
callback LuaFunction lua回调

返回值说明

  • void

void RemoveListenerOnEnterWatchPoint(LuaFunction callback)

简要说明:

  • Lua接口—移除事件—进入观察点

属性:

参数名 必选 类型 说明
callback LuaFunction lua回调

返回值说明

  • void

void AddListenerOnExitWatchPoint(LuaFunction callback)

简要说明:

  • Lua接口—注册事件—退出观察点

属性:

参数名 必选 类型 说明
callback LuaFunction lua回调

返回值说明

  • void

    void RemoveListenerOnExitWatchPoint(LuaFunction callback)

    简要说明:

  • Lua接口—移除事件—退出观察点

属性:

参数名 必选 类型 说明
callback LuaFunction lua回调

返回值说明

  • void

提供给应用端的接口

获取接口方式

//速度控制、运行状态
IRunningStateControl t = DependencyInjection.Container.Resolve<IRunningStateControl>();
//周期时间
IPeriodTimeControl t = DependencyInjection.Container.Resolve<IPeriodTimeControl>();

IRunningStateControl

简要说明:

  • 速度控制、运行状态控制

运行状态

    public int RunState
    {
        get;
        set;
    }
  • 状态说明
描述
0 Run
1 暂停

运行速率

    /// <summary>
    /// 当前运行速度倍率
    /// 1/-1代表正常速度
    /// 0代表暂停
    /// 正(N)代表速度变为N倍
    /// 负(-N)代表速度变为1/N倍
    /// </summary>
    public int SpeedRate
    {
        get;
        set;
    }

IPeriodTimeControl

简要说明:

  • 周期时间控制

void AddListenOnTriggerPeriodTime(Action<PeriodTimeData> func);

简要说明:

  • 注册触发周期时间事件

属性:

参数名 必选 类型 说明
func Action<PeriodTimeData> 进入周期观察事件

返回值说明

  • void

void RemoveListenOnTriggerPeriodTime(Action<PeriodTimeData> func);

简要说明:

  • 移除触发周期时间事件

属性:

参数名 必选 类型 说明
func Action<PeriodTimeData> 进入周期观察事件

返回值说明

  • void

void AddListenOnAccleerateEquipmentDelete(Action func);

简要说明:

  • 注册删除周期器材事件

属性:

参数名 必选 类型 说明
func Action 删除周期器材回调

void RemoveListenOnAccleerateEquipmentDelete(Action func);

简要说明:

  • 移除删除周期器材事件

属性:

参数名 必选 类型 说明
func Action 删除周期器材回调

返回值说明

  • void

void SendPeriodTimeKey(string paramkey,string entityid);

简要说明:

  • 进入观察点

属性:

参数名 必选 类型 说明
paramkey string 观察点标识
entityid string 器材ID

返回值说明

  • void

void SendExitWatchPoint(string paramkey, string entityid);

简要说明:

  • 进入观察点

属性:

参数名 必选 类型 说明
paramkey string 观察点标识
entityid string 器材ID

返回值说明

  • void

元器件配置json格式

{
    "EntityId":"123456",                    器材实体ID
    "Name": "天竺葵进行黑暗处理24小时",        时间控制名称
    "TriggerType": 0,                        触发方式 0:自动触发 1:手动触发
    "PeriodType": 0,                        是否周期 0:周期时间 1:普通时间
    "RealTime": 120,                        实际时间
    "HopeTime": 10,                            期望时长 10 秒
    "HaveWatchPoint":false,                    是否包含观察点
    "WatchType": 0,                            观察方式 0: 规律观察 1:非规律观察
    "WatchPoint": [{
        "ParamKey": "watchPoint1",            当前观察点ID
        "WatchPointTime": 60,                60秒时进入观察点
        "IsEnterWatchPoint": false            是否进入观察点
    }]
}

周期时间数据(内容与JSON数据一致)

        public  class PeriodTimeData
        {
            //器材实体ID
            public string EntityId{get;internal set;}
            //时间控制名称
            public string Name { get; internal set; }
            // 触发方式 0:自动触发 1:手动触发
            public int TriggerType { get; internal set; }
            //是否周期 0:周期时间 1:普通时间
            public int PeriodType { get; internal set; }
            //实际时间
            public int RealTime { get; internal set; }
            //期望时间
            public int HopeTime { get; internal set; }
            //是否包含观察点
            public bool HaveWatchPoint { get; internal set; }
            //观察方式 0: 规律观察 1:非规律观察
            public int WatchType { get; internal set; }
            public List<WatchTime> WatchPoint { get; internal set; }
        }

        public class WatchTime
        {
            //当前观察点ID
            public string ParamKey { get; internal set; }
            //60秒时进入观察点
            public int WatchPointTime { get; internal set; }
            //是否进入观察点
            public int IsEnterWatchPoint { get; internal set; }
        }

组件文档