예제 #1
0
 private void ClockCheck(SD_Thread Bit)//心跳检测线程
 {
     while (Bit.isStart)
     {
         TimeOut = SS_TriggerMarker.Clock_System(LateTime, GetOutTime); //心跳超时检测
         Thread.Sleep((int)ClockTimeDelay * 1000);                      //处理延时
     }
 }
예제 #2
0
        /// <summary>
        /// 计时器[游戏世界时间]:判断执行时间(被TimeScale影响)
        /// 循环触发:到达指定时间返回一帧true,并重置时间再次计时
        /// 持续触发:到达指定时间后,一直返回true
        /// </summary>
        /// <param name="targetSeconds">定时</param>
        ///	<param name="Switch">true/false(循环触发/持续触发)</param>
        /// <returns>return : 触发标记</returns>
        public bool IF_Clock_GameWorld(float targetSeconds, bool Switch)
        {
            bool bit = SS_TriggerMarker.Clock_GameWorld(StartTime_GameWorld, targetSeconds);

            if (bit && Switch)
            {
                Reset_Marker();
            }
            return((Switch) ? MarkerEdge.isEdge(bit) : bit);
        }
예제 #3
0
        /// <summary>
        /// 计数器:判断累加数值
        /// 循环触发:到达指定值返回一帧true,并重置时间再次计时
        /// 持续触发:到达指定值后,一直返回true
        /// </summary>
        /// <param name="targetCount">设定数</param>
        /// <param name="Cumulative">累加数</param>
        /// <param name="Switch">true/false(循环触发/持续触发)</param>
        /// <returns>return : 触发标记</returns>
        public bool IF_Count(float targetCount, float Cumulative, bool Switch)
        {
            bool bit = SS_TriggerMarker.Count(ref StartCount, targetCount, Cumulative);

            if (bit && Switch)
            {
                Reset_Marker();
            }

            return((Switch) ? MarkerEdge.isEdge(bit) : bit);
        }
예제 #4
0
        private void DataQueueProcessor(SD_Thread Bit)//数据队列处理器
        {
            while (Bit.isStart)
            {
                if (SS_TriggerMarker.Clock_System(LateTime, ClockTimeDelay) && StartClock) //心跳时间判断
                {
                    SetQueue.Enqueue(new byte[] { 1 });                                    //心跳消息暂时为Byte 1
                    LateTime = DateTime.Now;                                               //刷新心跳时间
                }

                if (SetQueue.Count > 0)//发送数据
                {
                    byte[] data = (byte[])SetQueue.Dequeue();
                    udpSet.Send(data, data.Length, SetServerPoint); //针对发送数据
                    LateTime = DateTime.Now;                        //刷新心跳时间
                }

                Thread.Sleep((int)SetTimeDelay * 1000);//处理延时
            }
        }
예제 #5
0
 /// <summary>
 ///  T触发器:Switch间隔变成true,可改变触发标记状态(false/true)
 /// </summary>
 /// <param name="Switch">标记开关</param>
 /// <returns>return : 触发标记</returns>
 public bool isTrigger(bool Switch)
 {
     return(SS_TriggerMarker.Trigger(Switch, ref bit, ref trigger));
 }
예제 #6
0
 /// <summary>
 /// 计时器[游戏时间]:判断执行时间(一次性)
 /// 到达指定时间返回一帧true
 /// </summary>
 /// <param name="targetSeconds">定时</param>
 /// <returns>return : 触发标记</returns>
 public bool IF_Clock_Game(float targetSeconds)
 {
     return(MarkerEdge.isEdge(SS_TriggerMarker.Clock_Game(StartTime_Game, targetSeconds)));
 }
예제 #7
0
 /// <summary>
 /// 边缘检测:检测Switch是否发生变化,触发标记变成true一次 ;  用!Switch[与]运算过滤上下边缘
 /// </summary>
 /// <param name="Switch">标记开关</param>
 /// <returns>return : 触发标记</returns>
 public bool isEdge(bool Switch)
 {
     return(SS_TriggerMarker.Edge(Switch, ref bit));
 }
예제 #8
0
 /// <summary>
 /// 计数器:判断累加数值(一次性)
 /// 到达指定值返回一帧true
 /// </summary>
 /// <param name="targetCount">设定数</param>
 /// <param name="Cumulative">累加数</param>
 /// <returns>return : 触发标记</returns>
 public bool IF_Count(float targetCount, float Cumulative)
 {
     return(MarkerEdge.isEdge(SS_TriggerMarker.Count(ref StartCount, targetCount, Cumulative)));
 }