예제 #1
0
        public void Verify(string deviceName)
        {
            Console.WriteLine("Verifying MQTT bridge service is active...");
            Console.WriteLine("  Device name: " + deviceName);

            var attempt    = 1;
            var isFinished = false;

            var status = SystemCtlServiceStatus.NotSet;

            var serviceName = "growsense-mqtt-bridge-" + deviceName + ".service";

            while (!isFinished)
            {
                status = SystemCtl.Status(serviceName);

                if (attempt > 10 || status == SystemCtlServiceStatus.Active)
                {
                    isFinished = true;
                }
                else
                {
                    attempt++;

                    Console.WriteLine("Failed attempt. Trying again...");
                    Console.WriteLine("  Attempt: " + attempt);

                    Thread.Sleep(1000);
                }
            }

            if (status != SystemCtlServiceStatus.Active)
            {
                throw new Exception("MQTT bridge service is not active for device: " + deviceName);
            }
            else
            {
                Console.WriteLine("  MQTT bridge service is active.");
                //var statusReport = SystemCtl.StatusReport(serviceName);

                // TODO: Remove if not needed. Disabled because it triggers from exceptions caused before connection succeeded.
                //if (statusReport.IndexOf("MqttConnectionException") > -1)
                //  throw new Exception("MQTT Bridge failed to connect to broker for device: " + deviceName);
                //if (statusReport.IndexOf("No such file or directory") > -1)
                //  throw new Exception("USB device not found for device: " + deviceName);
            }


            Console.WriteLine("Finished verifying MQTT bridge service is active.");
        }
        public void Verify(string deviceName)
        {
            Console.WriteLine("Verifying UI controller service is active...");
            Console.WriteLine("  Device name: " + deviceName);

            var attempt    = 1;
            var isFinished = false;

            var status = SystemCtlServiceStatus.NotSet;

            var serviceName = "growsense-ui-1602-" + deviceName + ".service";

            while (!isFinished)
            {
                status = SystemCtl.Status(serviceName);

                if (attempt > 10 || status == SystemCtlServiceStatus.Active)
                {
                    isFinished = true;
                }
                else
                {
                    attempt++;

                    Console.WriteLine("Failed attempt. Trying again...");
                    Console.WriteLine("  Attempt: " + attempt);

                    Thread.Sleep(1000);
                }
            }

            if (status != SystemCtlServiceStatus.Active)
            {
                throw new Exception("UI controller service is not active for device: " + deviceName);
            }
            else
            {
                Console.WriteLine("  UI controller service is active.");
            }


            Console.WriteLine("Finished verifying UI controller service is active.");
        }