public async Task KnobDisplayTutorial() { Port port = new Port(); Assert.IsTrue(await port.Initialize(null)); DisplayModulo display = new DisplayModulo(); Assert.IsTrue(display.Initialize(port)); Knob knob = new Knob(); bool buttonRelease = false; bool posChange = false; Assert.IsTrue(knob.Initialize(port, null, null, (knb) => { buttonRelease = true; }, (knb) => { posChange = true; } )); while (port.Loop()) { if (buttonRelease) { display.Clear(); display.Write("knob done"); display.Refresh(); break; } if (posChange) { int angle = knob.GetAngle(); display.Clear(); display.SetTextColor(1, 0, 0); knob.SetColor(angle * 255 / 360.0f, angle * 255 / 360.0f, angle * 255 / 260.0f); display.Write("knob angle " + angle); display.Refresh(); posChange = false; } } display.Dispose(); knob.Dispose(); port.Close(); }
public async Task TemperatureProbEventsDisplayTutorial() { bool shouldExit = false; bool tempChanged = true; Action<Modulo> changeLambda = (joy) => { tempChanged = true; }; Port port = new Port(); DisplayModulo display = new DisplayModulo(); TemperatureProbe tempProbe = new TemperatureProbe(); Assert.IsTrue(await port.Initialize(null)); Assert.IsTrue(display.Initialize(port, null, (dsp, nt) => { shouldExit = true; })); Assert.IsTrue(tempProbe.Initialize(port, null, changeLambda)); display.Clear(); while (port.Loop()) { if (tempChanged) { display.SetCursor(0, 0); display.Write("Temp C " + tempProbe.GetTemperatureCelsius() + "\r\ndeg F " + tempProbe.GetTemperatureFahrenheit()); display.Refresh(); } if (shouldExit) { break; } } display.Dispose(); tempProbe.Dispose(); port.Close(); }
public async Task IRRemoteEventsDisplayTutorial() { bool shouldExit = false; bool stringChanged = false; String codeString = String.Empty; Action<IRRemote, sbyte, int, ushort[], int> dataReceivedCallback = (rem, protocol, value, extdata, exlen) => { codeString = String.Format("Protocol {0:X} {1:X} ex len {2}", protocol, value, exlen); System.Diagnostics.Debug.WriteLine("String " + codeString); stringChanged = true; }; Port port = new Port(); DisplayModulo display = new DisplayModulo(); IRRemote irRemote = new IRRemote(); Assert.IsTrue(await port.Initialize(null)); Assert.IsTrue(display.Initialize(port, null, (dsp, nt) => { shouldExit = true; })); Assert.IsTrue(irRemote.Initialize(port, null, dataReceivedCallback)); display.Clear(); while (port.Loop()) { if (stringChanged) { display.SetCursor(0, 0); display.Write(codeString); display.Refresh(); stringChanged = false; } if (shouldExit) { break; } } display.Dispose(); irRemote.Dispose(); port.Close(); }
public async Task JoyStickEventsDisplayTutorial() { bool shouldExit = false; bool joyStickChanged = true; Action<Modulo> changeLambda = (joy) => { joyStickChanged = true; }; Port port = new Port(); DisplayModulo display = new DisplayModulo(); Joystick joystick = new Joystick(); Assert.IsTrue(await port.Initialize(null)); Assert.IsTrue(display.Initialize(port, null, (dsp, nt) => { shouldExit = true; })); Assert.IsTrue(joystick.Initialize(port, null, changeLambda, null, changeLambda)); byte max_x = (byte)(display.Width - 1); byte max_y = (byte)(display.Height - 1); while (port.Loop()) { if (joyStickChanged) { joyStickChanged = false; int screen_x = (int)(max_x / 2.0f - max_x / 2.0f * joystick.GetHPos()); int screen_y = (int)(max_y / 2.0f - max_y / 2.0f * joystick.GetVPos()); draw_crosshairs(display, screen_x, screen_y, joystick.GetButtonState()); } if (shouldExit) { break; } } display.Dispose(); joystick.Dispose(); port.Close(); }