1 // 2 // Copyright (c) 2010-2022 Antmicro 3 // 4 // This file is licensed under the MIT License. 5 // Full license text is available in 'licenses/MIT.txt'. 6 // 7 8 using System.Collections.Generic; 9 using System.Globalization; 10 11 namespace Antmicro.Renode.Peripherals.Sensors 12 { 13 public class ScalarSample : SensorSample 14 { ScalarSample()15 public ScalarSample() 16 { 17 } 18 ScalarSample(decimal value)19 public ScalarSample(decimal value) 20 { 21 Value = value; 22 } 23 Load(IList<decimal> data)24 public override void Load(IList<decimal> data) 25 { 26 if(data.Count != Dimensions) 27 { 28 throw new Exceptions.RecoverableException($"Tried to create a {Dimensions}-dimensional ScalarSample using {data.Count} values"); 29 } 30 31 Value = data[0]; 32 } 33 TryLoad(params string[] data)34 public override bool TryLoad(params string[] data) 35 { 36 var value = 0m; 37 38 var result = data.Length == 1 39 && decimal.TryParse(data[0], NumberStyles.Any, CultureInfo.InvariantCulture, out value); 40 41 Value = value; 42 return result; 43 } 44 ToString()45 public override string ToString() 46 { 47 return $"[Value: {Value}]"; 48 } 49 50 public decimal Value { get; set; } 51 52 public const int Dimensions = 1; 53 } 54 } 55