/// <summary> /// Construct a SevenSegment display from a list of LEDs. /// </summary> /// <param name="Leds">The list of LEDs to use</param> /// <param name="rightToLeftDigits">Whether the digits are right-to-left digits</param> public SevenSegmentDisplay(IList <Led> Leds, bool rightToLeftDigits = false) : base(Leds.Count / 8, 1) { if (Leds.Count % 8 != 0) { throw new ArgumentException("Leds should contain a multiple of 8 segments when using this constructor", "leds"); } var numDigits = Leds.Count / 8; digits = new Collection <SevenSegmentDigit>(); for (var i = 0; i < numDigits; i++) { var leds = Leds.Skip(i * 8).Take(8).ToList(); var digit = new SevenSegmentDigit(leds); digits.Add(digit); } if (rightToLeftDigits) { digits = digits.Reverse().ToList(); } setupDigits(); }
/// <summary> /// Construct a SevenSegment display from a list of LEDs. /// </summary> /// <param name="Leds">The list of LEDs to use</param> /// <param name="rightToLeftDigits">Whether the digits are right-to-left digits</param> public SevenSegmentDisplay(IList<Led> Leds, bool rightToLeftDigits = false) : base(Leds.Count/8, 1) { if (Leds.Count % 8 != 0) throw new ArgumentException("Leds should contain a multiple of 8 segments when using this constructor", "leds"); int numDigits = Leds.Count / 8; digits = new Collection<SevenSegmentDigit>(); for(int i=0;i<numDigits;i++) { var leds = Leds.Skip(i * 8).Take(8).ToList(); var digit = new SevenSegmentDigit(leds); digits.Add(digit); } if (rightToLeftDigits) digits = digits.Reverse().ToList(); setupDigits(); }