GM_AutoScan.cs 1.42 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
using FLY.Thick.Base.Common;
using FlyADBase;
using System;

namespace FLY.Thick.Base.Server
{
    public class GM_AutoScan : GM_Base
    {
        public int Delay { get; set; }

        public int Counter { get; set; } = 5;

        Action ReScan;
        DateTime dtLast = DateTime.MinValue;
        public GM_AutoScan()
        {
            GMState = CTRL_STATE.AUTOSCAN;
            Delay = 5;
            Counter = Delay;
        }
        public void Init(FlyAD7 flyad, Action reScan)
        {
            base.Init(flyad);
            ReScan = reScan;
        }
        protected override void OnPoll()
        {
            if ((DateTime.Now - dtLast).TotalSeconds >= 1)
            {
                dtLast = DateTime.Now;
                if (Counter > 0)
                    Counter--;

                if (Counter <= 0)
                {
                    Stop();
                    ReScan();
                }
            }
        }
        public void Start(int delay)
        {
43 44 45 46 47 48 49 50 51 52
            if (delay <= 0)
            {
                ReScan();
                return;
            }
            else
            {
                Delay = delay;
                Start();
            }
53 54 55 56 57 58 59 60 61 62 63
        }
        public override void Start()
        {
            IsRunning = true;
            Counter = Delay;
            dtLast = DateTime.Now;
            FObjBase.PollModule.Current.Poll_Config(onpoll_func);
            
        }
    }
}