Example #1
0
 static ComputerEntity.Hardware CreateHardware(IHardware hardware, int type)
 {
     ComputerEntity.Hardware h = new ComputerEntity.Hardware();
     h.type = type;
     h.name = hardware.Name;
     return(h);
 }
Example #2
0
        public static void SyncToLive2DViewerEX(Computer computer)
        {
            if (!ExClient.Instance.IsOpen)
            {
                return;
            }

            ComputerEntity entity = new ComputerEntity();

            List <ComputerEntity.Hardware> list       = new List <ComputerEntity.Hardware>();
            List <ComputerEntity.Sensor>   sensorList = new List <ComputerEntity.Sensor>();

            for (int i = 0; i < computer.Hardware.Length; i++)
            {
                sensorList.Clear();
                IHardware hardware = computer.Hardware[i];

                ComputerEntity.Hardware hw = null;
                switch (hardware.HardwareType)
                {
                case HardwareType.CPU:
                    hw = CreateHardware(hardware, ComputerEntity.HardwareType.CPU);
                    ISensor sensor = FindSensor(hardware, SensorType.Load, "CPU Total");
                    if (sensor != null)
                    {
                        sensorList.Add(CreateSensor(sensor, ComputerEntity.SensorType.Load));
                    }
                    sensor = FindSensor(hardware, SensorType.Temperature, null);
                    if (sensor != null)
                    {
                        sensorList.Add(CreateSensor(sensor, ComputerEntity.SensorType.Temperature));
                    }
                    hw.sensors = sensorList.ToArray();
                    break;

                case HardwareType.RAM:
                    hw     = CreateHardware(hardware, ComputerEntity.HardwareType.RAM);
                    sensor = FindSensor(hardware, SensorType.Load, "Memory");
                    if (sensor != null)
                    {
                        sensorList.Add(CreateSensor(sensor, ComputerEntity.SensorType.Load));
                    }
                    hw.sensors = sensorList.ToArray();
                    break;

                case HardwareType.GpuAti:
                case HardwareType.GpuNvidia:
                    hw = CreateHardware(hardware, ComputerEntity.HardwareType.GPU);

                    hw.subType = hardware.HardwareType == HardwareType.GpuAti ? ComputerEntity.GpuType.Ati : ComputerEntity.GpuType.Nivida;
                    sensor     = FindSensor(hardware, SensorType.Load, "GPU Core");
                    if (sensor != null)
                    {
                        sensorList.Add(CreateSensor(sensor, ComputerEntity.SensorType.Load));
                    }
                    sensor = FindSensor(hardware, SensorType.Temperature, null);
                    if (sensor != null)
                    {
                        sensorList.Add(CreateSensor(sensor, ComputerEntity.SensorType.Temperature));
                    }
                    hw.sensors = sensorList.ToArray();
                    break;

                case HardwareType.HDD:
                    hw     = CreateHardware(hardware, ComputerEntity.HardwareType.HDD);
                    sensor = FindSensor(hardware, SensorType.Load, null);
                    if (sensor != null)
                    {
                        sensorList.Add(CreateSensor(sensor, ComputerEntity.SensorType.Load));
                    }
                    hw.sensors = sensorList.ToArray();
                    break;

                case HardwareType.NIC:
                    if (!NicEx.IsAvailable(hardware))
                    {
                        break;
                    }

                    hw = CreateHardware(hardware, ComputerEntity.HardwareType.NIC);
                    NetworkInterfaceType nit = NicEx.GetNetworkInterfaceType(hardware);
                    hw.subType = nit == NetworkInterfaceType.Wireless80211 ? ComputerEntity.NicType.Wireless : ComputerEntity.NicType.Ethernet;

                    sensor = FindSensor(hardware, SensorType.InternetSpeed, "Upload Speed");
                    if (sensor != null)
                    {
                        sensorList.Add(CreateSensor(sensor, ComputerEntity.SensorType.NetUpSpeed));
                    }
                    sensor = FindSensor(hardware, SensorType.InternetSpeed, "Download Speed");
                    if (sensor != null)
                    {
                        sensorList.Add(CreateSensor(sensor, ComputerEntity.SensorType.NetDownSpeed));
                    }
                    hw.sensors = sensorList.ToArray();
                    break;
                }
                if (hw != null)
                {
                    list.Add(hw);
                }
            }

            entity.hardware = list.ToArray();
            RemoteMessage.Send(Msg.SyncResourceMonitor, entity);
        }