public static void RefreshHardware(Hardware obj)
        {
            obj.Sensors.Clear();
            UpdateVisitor updateVisitor = new UpdateVisitor();
            Computer      computer      = new Computer();

            computer.Open();
            PartOneHot(computer, obj.GenericName);
            computer.Accept(updateVisitor);
            for (int i = 0; i < computer.Hardware.Length; i++)
            {
                for (int k = 0; k < computer.Hardware.Length; k++)
                {
                    var currentHardware = computer.Hardware[k];

                    for (int j = 0; j < currentHardware.Sensors.Length; j++)
                    {
                        var     currentSensor = currentHardware.Sensors[j];
                        Sensor_ nSensor       = new Sensor_(currentSensor.Name, currentSensor.SensorType.ToString(), currentSensor)
                        {
                            Value = (float)currentSensor.Value
                        };
                        obj.Sensors[currentSensor.Name] = nSensor;
                    }
                }
                computer.Close();
            }
        }
        public static void InitSensors()
        {
            Stopwatch loop   = new Stopwatch();
            Stopwatch method = new Stopwatch();

            method.Start();
            Devices.Clear();
            foreach (string part in partNames)
            {
                loop.Start();
                UpdateVisitor updateVisitor = new UpdateVisitor();
                Computer      computer      = new Computer();
                computer.Open();
                PartOneHot(computer, part);
                computer.Accept(updateVisitor);
                for (int i = 0; i < computer.Hardware.Length; i++)
                {
                    for (int k = 0; k < computer.Hardware.Length; k++)
                    {
                        var currentHardware = computer.Hardware[k];

                        Hardware nHardware = new Hardware(currentHardware.HardwareType.ToString(), part)
                        {
                            Name = currentHardware.Name
                        };

                        for (int j = 0; j < computer.Hardware[k].Sensors.Length; j++)
                        {
                            var currentSensor = computer.Hardware[k].Sensors[j];
                            // Console.WriteLine("    nSensor -- " + currentSensor.Name + " - " + currentSensor.SensorType.ToString() + " - " + currentSensor.Value.ToString());
                            Sensor_ nSensor = new Sensor_(currentSensor.Name, currentSensor.SensorType.ToString(), currentSensor)
                            {
                                Value = (float)currentSensor.Value
                            };
                            nHardware.Sensors[currentSensor.Name] = nSensor;
                        }

                        Devices[GenKey(currentHardware.HardwareType.ToString())] = nHardware;
                        loop.Stop();
                        Clog(String.Format("HW Initialization -- {0} initialized in {1} ms. {2} Sensors found.", part, loop.ElapsedMilliseconds, nHardware.SensorsLength()));
                        loop.Reset();
                    }
                    computer.Close();
                }
            }
            method.Stop();
            Clog(String.Format("Hardware Initialized in {0} ms.", method.ElapsedMilliseconds));
            LogHardware();
        }