Esempio n. 1
0
        static void Main(string[] args)
        {
            try
            {
                AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
                SetWorkingDirectory();
                var argDict = ProcessArgs(args);

                JsonConvert.DefaultSettings = () =>
                {
                    var settings = new JsonSerializerSettings();
                    settings.Error = (sender, arg) =>
                    {
                        arg.ErrorContext.Handled = true;
                    };
                    return(settings);
                };

                if (argDict.ContainsKey("update"))
                {
                    Updater.CoreUpdate();
                }

                if (OSUtils.IsWindows)
                {
#if DEBUG
                    IsDebug = true;
                    DeviceSocket.Connect();
#else
                    ServiceBase.Run(new WindowsService());
#endif
                }
                else
                {
                    DeviceSocket.Connect();
                }

                while (true)
                {
                    System.Threading.Thread.Sleep(1000);
                }
            }
            catch (Exception ex)
            {
                Logger.Write(ex);
                throw;
            }
        }
Esempio n. 2
0
        private static async void Init(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

#if DEBUG
            IsDebug = true;
#endif

            SetWorkingDirectory();
            var argDict = ProcessArgs(args);

            JsonConvert.DefaultSettings = () =>
            {
                var settings = new JsonSerializerSettings();
                settings.Error = (sender, arg) =>
                {
                    arg.ErrorContext.Handled = true;
                };
                return(settings);
            };


            if (argDict.ContainsKey("update"))
            {
                Updater.CoreUpdate();
            }

            if (!IsDebug && OSUtils.IsWindows)
            {
                _ = Task.Run(() =>
                {
                    ServiceBase.Run(new WindowsService());
                });
            }

            try
            {
                await DeviceSocket.Connect();
            }
            finally
            {
                await HandleConnection();
            }
        }
Esempio n. 3
0
        private static async Task HandleConnection()
        {
            while (true)
            {
                try
                {
                    if (!DeviceSocket.IsConnected)
                    {
                        var waitTime = new Random().Next(1000, 30000);
                        Logger.Write($"Websocket closed.  Reconnecting in {waitTime / 1000} seconds...");
                        await Task.Delay(waitTime);

                        await DeviceSocket.Connect();
                    }
                }
                catch (Exception ex)
                {
                    Logger.Write(ex);
                }
                Thread.Sleep(1000);
            }
        }