private void UpdateCPUChart(string[] data, DateTime now) { bool isCPUDataAvailable = double.TryParse(data[1], out double cputempData); if (isCPUDataAvailable) { CPUChartValues.Add(new ChartData { DateData = now, Value = cputempData }); } TelemetryDataChanged?.Invoke(data); }
private async void FrmDashboard_SensorDataChanged(string arduinoString, params string[] data) { try { var now = System.DateTime.Now; lblActualCPUName.Text = data[0].ToString(); lblActCPUTemp.Text = data[1].ToString(); lblActualCPUUsage.Text = data[2].ToString(); lblActGPUName.Text = data[3].ToString(); lblActGPUTemp.Text = data[4].ToString(); lblActGPUUsage.Text = data[5].ToString(); await Task.Run(() => UpdateGPUData(data, now)); await Task.Run(() => UpdateCPUChart(data, now)); if (port != null && port.IsOpen) { await Task.Run(() => SendDataToArduino(arduinoString)); } SetAxisLimits(now); //lets only use the last 30 values if (CPUChartValues.Count > 30) { CPUChartValues.RemoveAt(0); } } catch (Exception) { throw; } }