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