public void GetGlyph_TextTooShort_ReturnsSubList(int pos)
        {
            var text = ImmutableList <Glyph> .Empty.Add(new Glyph('a', true))
                       .Add(new Glyph('b', false)).Add(new Glyph('c', true));

            uint delay     = 1;
            uint endsDelay = 2;

            var selector = new ScrollingGlyphSelector(delay, endsDelay, 3);

            Assert.True(text.SequenceEqual(selector.GetSelected()));
        }
        public void GetGlyph_PartialDisplay_ReturnsSubList(int pos)
        {
            var text = ImmutableList <Glyph> .Empty.Add(new Glyph('a', true))
                       .Add(new Glyph('b', false)).Add(new Glyph('c', true));

            uint delay     = 1;
            uint endsDelay = 2;

            var selector = new ScrollingGlyphSelector(delay, endsDelay, 2).SetText(text);

            Assert.True(text.GetRange(0, 2).SequenceEqual(selector.GetSelected()));
        }
        public void GetGlyph_AtStart_ReturnsWithoutOffset(int pos)
        {
            var text = ImmutableList <Glyph> .Empty.Add(new Glyph('a', true))
                       .Add(new Glyph('b', false)).Add(new Glyph('c', true));

            uint delay     = 1;
            uint endsDelay = 2;

            var selector = new ScrollingGlyphSelector(delay, endsDelay, 3).SetText(text);

            Assert.AreEqual(text, selector.GetSelected());
        }
        public void GetGlyph_WithDelay_ReturnsWithOffset()
        {
            var text = ImmutableList <Glyph> .Empty.Add(new Glyph('a', true))
                       .Add(new Glyph('b', false)).Add(new Glyph('c', true));

            uint delay     = 1;
            uint endsDelay = 2;

            var selector = new ScrollingGlyphSelector(delay, endsDelay, 1).SetText(text);

            selector = selector.Tick(2);
            Assert.True(text.GetRange(1, 1).SequenceEqual(selector.GetSelected()));

            selector = selector.Tick(3);
            Assert.True(text.GetRange(2, 1).SequenceEqual(selector.GetSelected()));

            selector = selector.Tick(5);
            Assert.True(text.GetRange(0, 1).SequenceEqual(selector.GetSelected()));
        }
Exemple #5
0
        public static void HelloWorld()
        {
            var gpioHandler  = new GpioHandler();
            var segment_pins = ImmutableList <Pin> .Empty
                               .Add(new Pin(21, false)).Add(new Pin(20, false))
                               .Add(new Pin(16, false)).Add(new Pin(12, false))
                               .Add(new Pin(7, false)).Add(new Pin(8, false))
                               .Add(new Pin(25, false)).Add(new Pin(24, false));

            var digit_pins = ImmutableList <Pin> .Empty
                             .Add(new Pin(26, false)).Add(new Pin(19, false))
                             .Add(new Pin(13, false)).Add(new Pin(6, false))
                             .Add(new Pin(5, false)).Add(new Pin(11, false))
                             .Add(new Pin(9, false)).Add(new Pin(10, false));

            var directWriter =
                new SimplerDirectSsdWriter(segment_pins, digit_pins, gpioHandler);

            var converter = new SegmentsConverter();

            var selector = new ScrollingGlyphSelector(1000000, 2000000, digit_pins.Count);

            ISsdWriter <string> stringWriter =
                new StringSsdWriter(directWriter, converter.GetSegments, selector);

            stringWriter = stringWriter.Write("Hello world please work");

            uint millis = 0;
            uint step   = 800;

            while (true)
            {
                stringWriter = stringWriter.Tick(millis);

                gpioHandler.SleepMicros(step);
                millis += step;
            }
        }
        public void GetGlyph_Empty_ReturnsEmptyGlyphs()
        {
            var selector = new ScrollingGlyphSelector(1, 2, 1);

            Assert.AreEqual(ImmutableList <Glyph> .Empty, selector.GetSelected());
        }