Exemple #1
0
        async Task _render()
        {
            var r = new RenderTargetBitmap();

            await r.RenderAsync(OLEDRenderer);

            var colors = await PixelRender.GetPixels(r);

            for (var i = 0; i < r.PixelHeight; i++)
            {
                for (var x = 0; x < r.PixelWidth; x++)
                {
                    var pixel   = colors[x, i];
                    var average = (pixel.Red + pixel.Green + pixel.Blue) / 3;
                    if (average > 0)
                    {
                        _oled.DrawPixel((ushort)x, (ushort)i, 1);
                    }
                    else
                    {
                        _oled.DrawPixel((ushort)x, (ushort)i, 0);
                    }
                }
            }
            _oled.Display();
            await Task.Yield();
        }
Exemple #2
0
        async void _init()
        {
            await Task.Delay(500);

            _factory.Init();
            var oled = _factory.GetComponent <IOLED_SSD1306_I2C>();

            await oled.Init(OLEDConstants.SSD1306_I2C_ADDRESS, OLEDDisplaySize.SSD1306_128_64);

            oled.Display();

            while (true)
            {
                var r = new RenderTargetBitmap();

                await r.RenderAsync(OLEDRenderer);

                var colors = await PixelRender.GetPixels(r);

                for (var i = 0; i < r.PixelHeight; i++)
                {
                    for (var x = 0; x < r.PixelWidth; x++)
                    {
                        var pixel   = colors[x, i];
                        var average = (pixel.Red + pixel.Green + pixel.Blue) / 3;
                        if (average > 0)
                        {
                            oled.DrawPixel((ushort)x, (ushort)i, 1);
                        }
                        else
                        {
                            oled.DrawPixel((ushort)x, (ushort)i, 0);
                        }
                    }
                }
                oled.Display();
                await Task.Yield();
            }
        }
Exemple #3
0
        async void _init()
        {
            await Task.Delay(500);

            // var _lcdExamples = new LcdExamples_Rpi2();

            // _lcdExamples.Init();

            // var oledExmples = new OLEDExamples_Pi();
            // await oledExmples.Init();


            //return;
            //_factory.Builder.Register(
            //   c => new HC_SR04(c.Resolve<IExplorerHat_Output1>(), c.Resolve<IExplorerHat_Input2>())).As<IHC_SR04>();

            //_factory.Init();

            //_hc = _factory.GetComponent<IHC_SR04>();
            //await _hc.Init();

            //_loop();

            //return;
            _factory.Init();
            var oled = _factory.GetComponent <IOLED_SSD1306_I2C>();

            await oled.Init(OLEDConstants.SSD1306_I2C_ADDRESS, OLEDDisplaySize.SSD1306_128_64);

            oled.Display();

            //var random = new Random(Convert.ToInt32(DateTime.Now.Millisecond));



            while (true)
            {
                var r = new RenderTargetBitmap();

                await r.RenderAsync(OLEDRenderer);

                var colors = await PixelRender.GetPixels(r);

                for (var i = 0; i < r.PixelHeight; i++)
                {
                    for (var x = 0; x < r.PixelWidth; x++)
                    {
                        var pixel   = colors[x, i];
                        var average = (pixel.Red + pixel.Green + pixel.Blue) / 3;
                        if (average > 0)
                        {
                            oled.DrawPixel((ushort)x, (ushort)i, 1);
                        }
                        else
                        {
                            oled.DrawPixel((ushort)x, (ushort)i, 0);
                        }
                    }
                }
                oled.Display();
                await Task.Yield();
            }
        }