private void SetPoints(string param) { try { this.Points.Clear(); NumericDataPoint np = null; string[] args = param.Split(new char[] { ',' }); foreach (string str in args) { np = new NumericDataPoint(); np.Value = double.Parse(str.Trim()); this.Points.Add(np); } } catch (Exception ex) { } }
public async Task <DataPoint> GenerateDemoDataAsync(Metrics type, string source, DateTime?timestamp = null) { var metric = await _metricService.GetOrCreateMetricAsync(type, source); _context.Attach(metric); // Using plain new Random() will result in the same number if called multiple times in short time period var random = new Random( Convert.ToInt32( (DateTime.UtcNow.Ticks + type.GetHashCode() + source.GetHashCode()) % Int32.MaxValue ) ); DataPoint result = null; switch (type) { case Metrics.CpuLoad: result = new NumericDataPoint { Timestamp = timestamp ?? DateTime.UtcNow, Metric = metric, Value = random.Next(5, 100) }; await _context.NumericDataPoints.AddAsync((NumericDataPoint)result); break; case Metrics.Ping: var success = random.Next(100) % 5 != 0; result = new PingDataPoint { Timestamp = timestamp ?? DateTime.UtcNow, Metric = metric, Success = success, ResponseTime = new TimeSpan(0, 0, 0, 0, success ? random.Next(100, 900) : 0) }; await _context.PingDataPoints.AddAsync((PingDataPoint)result); break; case Metrics.UserAction: var userActions = new string[] { "Page load", "Project Edit", "Project Create", "User login", "User Logout", "User Register" }; var action = userActions .Skip(random.Next(0, userActions.Count())) .Take(1) .First(); result = new UserActionDataPoint { Timestamp = timestamp ?? DateTime.UtcNow, Metric = metric, Action = action, Count = random.Next(1, 10) }; await _context.UserActionDataPoints.AddAsync((UserActionDataPoint)result); break; case Metrics.Log: var severity = _context .LogEntrySeverities .Skip(random.Next(0, _context.LogEntrySeverities.Count())) .Take(1) .First(); result = new LogDataPoint { Timestamp = timestamp ?? DateTime.UtcNow, Metric = metric, Severity = severity, Count = random.Next(1, 10) }; await _context.LogDataPoints.AddAsync((LogDataPoint)result); break; case Metrics.Compilation: var stage = _context .CompilationStages .Skip(random.Next(0, _context.CompilationStages.Count())) .Take(1) .First(); result = new CompilationDataPoint { Timestamp = timestamp ?? DateTime.UtcNow, Metric = metric, Stage = stage, SourceSize = random.Next(1000, 10000), CompileTime = new TimeSpan(0, 0, 0, 0, random.Next(100, 900)) }; await _context.CompilationDataPoints.AddAsync((CompilationDataPoint)result); break; default: var ex = new ArgumentOutOfRangeException($"Unknown metric type: {type}"); _logger.LogCritical(LoggingEvents.Metrics.AsInt(), ex, "Unknown metric in CacheMetric"); throw ex; } await _context.SaveChangesAsync(); _logger.LogDebug( LoggingEvents.Demo.AsInt(), $"Data point for metric of type {type} and source {source} has been generated." ); return(result); }
/// <summary> /// 初始化动态曲线 /// </summary> private void InitChart() { _series = new CarNumericSeries[dataTable1.Rows.Count];//根据计量点数据初始化动态曲线图数据数量 NumericDataPoint np = null; for (int i = 0; i < _series.Length; i++) { _series[i] = new CarNumericSeries(); _series[i].Points.Clear(); np = new NumericDataPoint(); np.Value = 0; _series[i].Points.Add(np);//将每个计量点曲线第一点初始化为0 } }
private void HandleWeightCompelte(double weight) { //switch (weighEditorControl1.PointCode) //{ // //case "K004": // // weight /= 100; // // break; // //case "K003": // //case "K006": // // weight /= 1000; // // break; // //case "K005": // // weight /= 1000; // // break; // default: // weight /= 1000; // break; //} NumericDataPoint np = new NumericDataPoint(); np.Value = weight; _series[m_iSelectedPound].Points.Add(np); meterControl1.Status = MeterStatus.Stable; meterControl1.Weight = weight; if (!_measApp.IsSaved) {//复位后保存按钮能再次保存 _isReWriteCard = false; button1.Enabled = true; } button1.Refresh(); }
private void HandleWeightChange(double weight) { bool flag = false; if (weight <= _measApp.Weight.MinWeight) { meterControl1.Status = MeterStatus.Null; _measApp.IsSaved = false;//复位后保存按钮能再次保存,彭海波增加 _measApp.Rtu.OpenGreen(); //打开绿灯 rtuControl1.TrafficLight = TrafficLightStatus.Green; _series[m_iSelectedPound].Points.Clear(); NumericDataPoint np = new NumericDataPoint(); np.Value = 0; _series[m_iSelectedPound].Points.Add(np); //LCD切回欢迎界面 if (_measApp.Lcd != null) { if (_measApp.Lcd.LcdStatus != LCD_PICTURE.WELCOME) { _measApp.Lcd.ClearScreen(); _measApp.Lcd.DrawPicture((int)LCD_PICTURE.WELCOME); _measApp.Lcd.LcdStatus = LCD_PICTURE.WELCOME; } } } else { meterControl1.Status = MeterStatus.UnStable; _measApp.Rtu.OpenRed(); //打开红灯 rtuControl1.TrafficLight = TrafficLightStatus.Red; flag = true; } //switch (weighEditorControl1.PointCode) //{ // //case "K004": // // weight /= 100; // // break; // //case "K003": // //case "K006": // // weight /= 1000; // // break; // //case "K005": // // weight /= 1000; // // break; // default: // weight /= 1000; // break; //} if (flag)//weight > 0 && weight >= _preWeight { NumericDataPoint np = new NumericDataPoint(); np.Value = weight; _series[m_iSelectedPound].Points.Add(np); } meterControl1.Weight = weight; button1.Enabled = false; //button1.Enabled = true; _preWeight = weight; }