4
4
using System . Collections . Generic ;
5
5
using System . Globalization ;
6
6
using System . IO ;
7
- using System . Linq ;
8
7
9
8
#endregion
10
9
@@ -19,9 +18,9 @@ public class Board
19
18
#region Fields
20
19
21
20
private static readonly Lazy < Board > board = new Lazy < Board > ( LoadBoard ) ;
22
- private readonly Dictionary < string , string > settings ;
23
21
24
- private string [ ] raspberryPiProcessor = new string [ ] { "BCM2708" , "BCM2709" } ;
22
+ private readonly Dictionary < string , string > settings ;
23
+ private readonly HashSet < string > raspberryPiProcessors = new HashSet < string > ( new [ ] { "BCM2708" , "BCM2709" } , StringComparer . InvariantCultureIgnoreCase ) ;
25
24
26
25
#endregion
27
26
@@ -52,7 +51,7 @@ public static Board Current
52
51
/// </value>
53
52
public bool IsRaspberryPi
54
53
{
55
- get { return ( Array . IndexOf ( raspberryPiProcessor , Processor ) >= 0 ) ; }
54
+ get { return raspberryPiProcessors . Contains ( Processor ) ; }
56
55
}
57
56
58
57
/// <summary>
@@ -76,7 +75,9 @@ public int Firmware
76
75
{
77
76
string revision ;
78
77
int firmware ;
79
- if ( settings . TryGetValue ( "Revision" , out revision ) && ! string . IsNullOrEmpty ( revision ) && int . TryParse ( revision , NumberStyles . HexNumber , CultureInfo . InvariantCulture , out firmware ) )
78
+ if ( settings . TryGetValue ( "Revision" , out revision )
79
+ && ! string . IsNullOrEmpty ( revision )
80
+ && int . TryParse ( revision , NumberStyles . HexNumber , CultureInfo . InvariantCulture , out firmware ) )
80
81
return firmware ;
81
82
82
83
return 0 ;
@@ -90,7 +91,8 @@ public string SerialNumber
90
91
{
91
92
get {
92
93
string serial ;
93
- if ( settings . TryGetValue ( "Serial" , out serial ) && ! string . IsNullOrEmpty ( serial ) )
94
+ if ( settings . TryGetValue ( "Serial" , out serial )
95
+ && ! string . IsNullOrEmpty ( serial ) )
94
96
return serial ;
95
97
96
98
return null ;
@@ -199,29 +201,28 @@ private static Board LoadBoard()
199
201
try
200
202
{
201
203
const string filePath = "/proc/cpuinfo" ;
202
- string [ ] cpuInfo = File . ReadAllLines ( filePath ) ;
203
- Dictionary < string , string > settings = new Dictionary < string , string > ( ) ;
204
- string suffix = "" ;
204
+
205
+ var cpuInfo = File . ReadAllLines ( filePath ) ;
206
+ var settings = new Dictionary < string , string > ( ) ;
207
+ var suffix = string . Empty ;
208
+
205
209
foreach ( var l in cpuInfo )
206
210
{
207
211
var separator = l . IndexOf ( ':' ) ;
208
- string key = l ;
209
- string val = null ;
212
+
210
213
if ( ! string . IsNullOrWhiteSpace ( l ) && separator > 0 )
211
214
{
212
- key = l . Substring ( 0 , separator ) . Trim ( ) ;
213
- val = l . Substring ( separator + 1 ) . Trim ( ) ;
214
- if ( String . Compare ( key , "processor" , true ) == 0 )
215
- {
215
+ var key = l . Substring ( 0 , separator ) . Trim ( ) ;
216
+ var val = l . Substring ( separator + 1 ) . Trim ( ) ;
217
+ if ( string . Equals ( key , "processor" , StringComparison . InvariantCultureIgnoreCase ) )
216
218
suffix = "." + val ;
217
- }
219
+
218
220
settings . Add ( key + suffix , val ) ;
219
221
}
220
222
else
221
- {
222
223
suffix = "" ;
223
- }
224
224
}
225
+
225
226
return new Board ( settings ) ;
226
227
}
227
228
catch
0 commit comments