SmartShelfClient.cs 2.0 KB
using SmartShelf.DeviceLibrary;
using log4net; 
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;

namespace SmartShelfClient
{
    public partial class SmartShelfClient : ServiceBase
    {
        public SmartShelfClient()
        {
            InitializeComponent();
        }
        System.Timers.Timer startTimer = new System.Timers.Timer();
        protected static readonly ILog LOGGER = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        protected override void OnStart(string[] args)
        {
            LOGGER.Info("服务开始启动。。。。");
            bool result = BOXManager.StartInit();
            if (!result)
            {
                LOGGER.Error("加载配置失败!");

            }
            bool isOk = BOXManager.StartRun();
            if (isOk)
            {
                LOGGER.Info("料架服务【" + BOXManager.CID + "】成功启动");
            }
            else
            {
                //需要一直启动 ,十秒钟启动一次就可以
                startTimer.Interval = 10000;
                startTimer.AutoReset = true;
                startTimer.Elapsed += startTimer_Elapsed;
                startTimer.Enabled = true;
            }
        }

        void startTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            bool isOk = BOXManager.StartRun();
            if (isOk)
            {
                LOGGER.Info("料架服务【" + BOXManager.CID + "】成功启动");
                startTimer.Enabled = false;
            }
            else
            {
                LOGGER.Info("料架服务【" + BOXManager.CID + "】启动失败,将在10秒后重新启动。。。");
            }
        }

        protected override void OnStop()
        {
            LOGGER.Info("服务开始关闭。。。。");
            startTimer.Enabled = false;
            BOXManager.StopRun(); 
            LOGGER.Info("服务关闭完成。。。。");

        }
    }
}