static ComputerEntity.Hardware CreateHardware(IHardware hardware, int type) { ComputerEntity.Hardware h = new ComputerEntity.Hardware(); h.type = type; h.name = hardware.Name; return(h); }
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); }