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(); }
async void _init() { await Task.Delay(500); _factory.Init(); _oled = _factory.GetComponent<IOLED_SSD1306_I2C>(); _a1 = _factory.GetComponent<IExplorerHat_AnaloguePlug1>(); await _a1.Init(); await _oled.Init(OLEDConstants.SSD1306_I2C_ADDRESS, OLEDDisplaySize.SSD1306_128_64); _oled.Display(); _loop(); }
async void _init() { await Task.Delay(500); _factory.Init(); _oled = _factory.GetComponent <IOLED_SSD1306_I2C>(); _a1 = _factory.GetComponent <IExplorerHat_AnaloguePlug1>(); await _a1.Init(); await _oled.Init(OLEDConstants.SSD1306_I2C_ADDRESS, OLEDDisplaySize.SSD1306_128_64); _oled.Display(); _loop(); }