public static void BasicUITest(VirtualCanvas canvas) { canvas.SetOrientation(Orientation.Portrait); canvas.DrawFill(ColorBackground); canvas.DrawString(5, 10, (ushort)BasicColor.Black, DejaVuSansBold9.ID, "DejaVu Sans 9 Bold"); canvas.DrawString(5, 30, (ushort)BasicColor.Black, DejaVuSans9.ID, "DejaVu Sans 9"); canvas.DrawString(5, 50, (ushort)BasicColor.Black, DejaVuSansMono8.ID, "DejaVu Sans Mono 8"); canvas.SetOrientation(Orientation.Landscape); canvas.DrawString(5, 10, (ushort)BasicColor.Black, DejaVuSans9.ID, "DejaVu Sans 9 (Rotated)"); canvas.SetOrientation(Orientation.Portrait); RenderPrimitiveShapes(canvas); var fontInfo = new DejaVuSans9().GetFontInfo(); RenderCompoundShapes(canvas, fontInfo); RenderIcons(canvas); var button = new ButtonWidget(20, 285, 200, 25, fontInfo, "Continue Demo"); canvas.RegisterWidget(button); canvas.RenderWidgets(); while (!button.Clicked) { canvas.TouchscreenWaitForEvent(); } button.Dirty = true; canvas.RenderWidgets(); canvas.Execute(); canvas.UnRegisterWidget(button); }
public static void Main() { tft.Initialize(); #if DRAWTOFILE StorageDevice.MountSD("SD", SPI.SPI_module.SPI1, Pins.GPIO_PIN_D10); var file = new FileStream(@"SD\VirtualCanvas.bin", FileMode.Create); var context = new BasicTypeSerializerContext(file); #else var context = new BasicTypeSerializerContext(); #endif var virtualCanvas = new VirtualCanvas(context); var fontDejaVuSansBold9 = new DejaVuSansBold9(); var fontDejaVuSans9 = new DejaVuSans9(); var fontDejaVuSansMono8 = new DejaVuSansMono8(); virtualCanvas.DrawFill(ColorBackground); virtualCanvas.DrawString(5, 10, BasicColor.Black, fontDejaVuSansBold9.GetFontInfo(), "DejaVu Sans 9 Bold"); virtualCanvas.DrawString(5, 30, BasicColor.Black, fontDejaVuSans9.GetFontInfo(), "DejaVu Sans 9"); virtualCanvas.DrawString(5, 50, BasicColor.Black, fontDejaVuSansMono8.GetFontInfo(), "DejaVu Sans Mono 8"); // Check if the screen orientation can be changed if (tft.GetProperties().Orientation == true) { // Change the orientation virtualCanvas.SetOrientation(LCD.Orientation.Landscape); // Render some text in the new orientation virtualCanvas.DrawString(5, 10, BasicColor.Black, new DejaVuSans9().GetFontInfo(), "DejaVu Sans 9 (Rotated)"); // Change the orientation back virtualCanvas.SetOrientation(LCD.Orientation.Portrait); } RenderPrimitiveShapes(virtualCanvas); RenderCompoundShapes(virtualCanvas, fontDejaVuSans9.GetFontInfo()); RenderIcons(virtualCanvas); var localCanvas = new Canvas(tft); #if DRAWTOFILE file.Flush(); file.Close(); localCanvas.Replay(new BasicTypeDeSerializerContext(new FileStream(@"SD\VirtualCanvas.bin", FileMode.Open))); StorageDevice.Unmount("SD"); #else //localCanvas.Replay(new BasicTypeDeSerializerContext(context.GetBuffer())); StorageDevice.MountSD("SD", SPI.SPI_module.SPI1, Pins.GPIO_PIN_D10); var file = new FileStream(@"SD\VirtualCanvas.bin", FileMode.Create); int contentSize = 0; byte[] buffer = context.GetBuffer(ref contentSize); file.Write(buffer, 0, contentSize); file.Flush(); file.Close(); StorageDevice.Unmount("SD"); #endif }
public static void RenderCompoundShapes(VirtualCanvas canvas, FontInfo fontInfo) { canvas.DrawProgressBar( 70, 140, 75, 12, CornerStyle, CornerStyle, (ushort)BasicColor.Black, (ushort)GrayScaleValues.Gray_128, (ushort)GrayScaleValues.Gray_30, (ushort)BasicColor.Green, 78); canvas.DrawString(5, 144, (ushort)BasicColor.Black, fontInfo.ID, "Progress"); canvas.DrawString(155, 144, (ushort)BasicColor.Black, fontInfo.ID, "78%"); canvas.DrawRectangleFilled(0, 275, 239, 319, (ushort)GrayScaleValues.Gray_80); }
public void Render(VirtualCanvas canvas, GoBus.GoSocket sdSocket) { Joystick.Initialize(GoSockets.Socket3, GoBusIRQHandler); Joystick.Get(); while (true) { canvas.SetOrientation(Orientation.Landscape); canvas.DrawFill(ColorHelpers.GetRGB24toRGB565(255, 212, 42)); canvas.DrawString( 10, 1, ColorHelpers.GetRGB24toRGB565(0, 0, 0), VerdanaBold14.ID, "[Nwazet Playground"); canvas.RenderWidgets(Nwazet.Go.Imaging.Render.All); canvas.WidgetClicked += new WidgetClickedHandler(OnWidgetClicked); canvas.TouchscreenWaitForEvent(); canvas.WidgetClicked -= new WidgetClickedHandler(OnWidgetClicked); canvas.RenderWidgets(Nwazet.Go.Imaging.Render.Dirty); if (TemperatureAndRelayButton.Clicked) { var tempRelay = new TempRelay(); tempRelay.Render(canvas); } else if (ImageGalleryButton.Clicked) { var imageGallery = new ImageGallery(); imageGallery.Render(canvas, sdSocket); } else if (BasicUIButton.Clicked) { var basicUI = new BasicUI(); basicUI.Render(canvas); } else if (LEDMarqueeButton.Clicked) { var ledMarquee = new LEDMarquee(); ledMarquee.Render(canvas); } else if (LEDRGBArtButton.Clicked) { var ledRgbArt = new LEDRGBArt(); ledRgbArt.Render(canvas); } else if (LEDCaptureTheDotButton.Clicked) { var ledCaptureTheDot = new LEDCaptureTheDot(); ledCaptureTheDot.Render(canvas, Joystick); } else if (LEDSignShowcaseButton.Clicked) { var ledSignShowcase = new LEDSignShowcase(); ledSignShowcase.Render(); } canvas.ActivateWidgets(true); } }
public void DisplayJoystickInput(VirtualCanvas canvas, ushort x, ushort y) { string text = "X: " + x / 100 + ", " + " Y: " + y / 100; canvas.DrawRectangleFilled(0, 110, canvas.Width, 110 + 20, (ushort)BasicColor.White); canvas.DrawString(20, 110, (ushort)BasicColor.Black, VerdanaBold14.ID, text); canvas.Execute(); }
protected void DrawPlayground(VirtualCanvas canvas) { canvas.SetOrientation(Orientation.Landscape); canvas.DrawFill(ColorHelpers.GetRGB24toRGB565(255, 255, 255)); canvas.DrawString( 50, 4, ColorHelpers.GetRGB24toRGB565(0, 0, 0), VerdanaBold14.ID, "Rainbow Pixel Drawing"); for (var i = 0; i < 110; i += 10) { canvas.DrawLine( 80, 42 + i, 240, 42 + i, ColorHelpers.GetRGB24toRGB565(0, 0, 0)); } for (var i = 0; i < 170; i += 10) { canvas.DrawLine( 80 + i, 42, 80 + i, 142, ColorHelpers.GetRGB24toRGB565(0, 0, 0)); } canvas.DrawString( 110, 161, ColorHelpers.GetRGB24toRGB565(0, 0, 0), DejaVuSansBold9.ID, "Pixel Color"); canvas.DrawRectangle( 182, 151, 215, 181, ColorHelpers.GetRGB24toRGB565(0, 0, 0)); canvas.DrawButton( 32, 197, 250, 36, VerdanaBold14.ID, 20, ColorHelpers.GetRGB24toRGB565(0, 0, 0), ColorHelpers.GetRGB24toRGB565(255, 255, 255), ColorHelpers.GetRGB24toRGB565(0, 0, 0), "Click To Exit", RoundedCornerStyle.All); canvas.Execute(); }
protected void DrawPlayground(VirtualCanvas canvas) { canvas.SetOrientation(Orientation.Landscape); canvas.DrawFill(ColorHelpers.GetRGB24toRGB565(255, 255, 255)); canvas.DrawString( 50, 4, ColorHelpers.GetRGB24toRGB565(0, 0, 0), VerdanaBold14.ID, "RGB Pixel Drawing"); DrawGrid(canvas); // red canvas.DrawRectangleFilled( 260, 42, 290, 72, ColorHelpers.GetRGB24toRGB565(255, 0, 0)); // green canvas.DrawRectangleFilled( 260, 77, 290, 107, ColorHelpers.GetRGB24toRGB565(0, 250, 0)); // blue canvas.DrawRectangleFilled( 260, 112, 290, 142, ColorHelpers.GetRGB24toRGB565(0, 0, 255)); // Reset canvas.DrawButton( 80, 150, 160, 20, Verdana9.ID, 12, ColorHelpers.GetRGB24toRGB565(0, 0, 0), ColorHelpers.GetRGB24toRGB565(255, 255, 255), ColorHelpers.GetRGB24toRGB565(0, 0, 0), "Reset Drawing", RoundedCornerStyle.All); // Exit canvas.DrawButton( 32, 197, 250, 36, VerdanaBold14.ID, 20, ColorHelpers.GetRGB24toRGB565(0, 0, 0), ColorHelpers.GetRGB24toRGB565(255, 255, 255), ColorHelpers.GetRGB24toRGB565(0, 0, 0), "Click To Exit", RoundedCornerStyle.All); canvas.Execute(); }
public static void BasicTouchEventTest(VirtualCanvas canvas) { var message = "Touch Event Test"; var fontInfo = new DejaVuSansBold9().GetFontInfo(); var stringLength = fontInfo.GetStringWidth(message); canvas.SetOrientation(Orientation.Portrait); canvas.DrawFill(ColorBackground); canvas.DrawString( (canvas.Width - stringLength) / 2, 150, (ushort)BasicColor.Black, fontInfo.ID, message); canvas.TouchscreenWaitForEvent(); canvas.DrawCircleFilled(lastTouchX, lastTouchY, 4, (ushort)BasicColor.Red); canvas.Execute(); Thread.Sleep(1000); }
public static void NonBlockingTouchEventTest(VirtualCanvas canvas) { var message = "Touch To Continue"; var fontInfo = new DejaVuSansBold9().GetFontInfo(); var stringLength = fontInfo.GetStringWidth(message); canvas.DrawFill(ColorBackground); canvas.DrawString( (canvas.Width - stringLength) / 2, 150, (ushort)BasicColor.Black, fontInfo.ID, message); var random = new Random(lastTouchX * lastTouchY); lastTouchIsValid = 0; while (lastTouchIsValid == 0) { canvas.DrawCircleFilled(random.Next(canvas.Width), random.Next(canvas.Height), 4, (ushort)BasicColor.Red); canvas.Execute(); canvas.TouchscreenWaitForEvent(TouchScreenEventMode.NonBlocking); } }
public void Render(VirtualCanvas canvas) { Relay.Initialize(RelaySocket); ThermoCouple.Initialize(ThermoCoupleSocket); canvas.SetOrientation(Orientation.Landscape); canvas.DrawFill(BackgroundColor); canvas.DrawString(55, 4, 0, VerdanaBold14.ID, "Temperature & Relay"); canvas.DrawString(32, 74, 0, VerdanaBold14.ID, "Celsius:"); canvas.DrawString(32, 116, 0, VerdanaBold14.ID, "Fahrenheit:"); canvas.DrawString(32, 154, 0, VerdanaBold14.ID, "Relay:"); canvas.DrawButton( 32, 197, 250, 36, VerdanaBold14.ID, 20, ColorHelpers.GetRGB24toRGB565(0, 0, 0), ColorHelpers.GetRGB24toRGB565(255, 255, 255), ColorHelpers.GetRGB24toRGB565(0, 0, 0), "Click To Exit", RoundedCornerStyle.All); canvas.Execute(); canvas.Touch += TouchEventHandler; while (LastTouchIsValid == 0) { ReadTemp(); Thread.Sleep(100); canvas.DrawRectangleFilled(93, 153, 158, 176, BackgroundColor); canvas.DrawRectangleFilled(105, 69, 175, 94, BackgroundColor); canvas.DrawRectangleFilled(138, 112, 205, 137, BackgroundColor); canvas.DrawString(32, 74, 0, VerdanaBold14.ID, "Celsius: " + Shorten(ThermoCouple.Celsius.ToString())); canvas.DrawString(32, 116, 0, VerdanaBold14.ID, "Fahrenheit: " + Shorten(ThermoCouple.Farenheit.ToString())); canvas.DrawString(32, 154, 0, VerdanaBold14.ID, "Relay: " + ((RelayStatus) ? "ON" : "OFF")); canvas.Execute(); canvas.TouchscreenWaitForEvent(TouchScreenEventMode.NonBlocking); } canvas.Touch -= TouchEventHandler; Relay.Dispose(); ThermoCouple.Dispose(); }
public void Render(VirtualCanvas canvas, Joystick Joystick) { canvas.SetOrientation(Orientation.Landscape); canvas.DrawFill(ColorHelpers.GetRGB24toRGB565(255, 255, 255)); canvas.DrawString(80, 4, ColorHelpers.GetRGB24toRGB565(0, 0, 0), VerdanaBold14.ID, "Capture The Dot"); canvas.DrawButton( 32, 197, 250, 36, VerdanaBold14.ID, 20, ColorHelpers.GetRGB24toRGB565(0, 0, 0), ColorHelpers.GetRGB24toRGB565(255, 255, 255), ColorHelpers.GetRGB24toRGB565(0, 0, 0), "Click To Exit", RoundedCornerStyle.All); canvas.Execute(); var SendContext = new BasicTypeSerializerContext(); var ComPort = new SerialMessenger(); ComPort.Messenger += OnMessage; ComPort.Initialize(bufferSize: 1024); int contentSize = 0; BasicTypeSerializer.Put(SendContext, (UInt16)RGBLedDisplayCommand.RunPong); var buffer = SendContext.GetBuffer(out contentSize); ComPort.Send(buffer, 0, (byte)contentSize); UInt16 LeftX = 0; UInt16 RightY = 0; UInt16 LastLeftX = 1; UInt16 LastRightY = 1; canvas.Touch += TouchEventHandler; while (LastTouchIsValid == 0) { var joystickData = Joystick.Get(); //Debug.Print("RawX: " + joystickData.X + ", RawY: " + joystickData.Y); LeftX = (UInt16)MapRange(50, 950, 0, 15, joystickData.X); RightY = (UInt16)MapRange(50, 950, 0, 9, joystickData.Y); //Debug.Print("LeftX: " + LeftX + ", RightY: " + RightY); if (LeftX != LastLeftX || RightY != LastRightY) { BasicTypeSerializer.Put(SendContext, (UInt16)RGBLedDisplayCommand.UpdateJoystick); BasicTypeSerializer.Put(SendContext, (UInt16)LeftX); BasicTypeSerializer.Put(SendContext, (UInt16)RightY); buffer = SendContext.GetBuffer(out contentSize); ComPort.Send(buffer, 0, (byte)contentSize); Thread.Sleep(10); } canvas.TouchscreenWaitForEvent(TouchScreenEventMode.NonBlocking); } canvas.Touch -= TouchEventHandler; ComPort.Messenger -= OnMessage; BasicTypeSerializer.Put(SendContext, (UInt16)RGBLedDisplayCommand.Reset); buffer = SendContext.GetBuffer(out contentSize); ComPort.Send(buffer, 0, (byte)contentSize); ComPort.Dispose(); }
public static void UpdateDisplay(ushort temp, ushort humidity, Int32 pressurePa, UInt32 lux, UInt16 infraredSpectrum, AdcSample sample) { canvas.DrawRectangleFilled( 180, 30, 300, 162, ColorHelpers.GetRGB24toRGB565(0, 0, 0)); canvas.DrawString( TextAlignmentX, 40, ColorHelpers.GetRGB24toRGB565(255, 255, 255), VerdanaBold14.ID, temp.ToString()); canvas.DrawString( TextAlignmentX, 65, ColorHelpers.GetRGB24toRGB565(255, 255, 255), VerdanaBold14.ID, humidity.ToString()); canvas.DrawString( TextAlignmentX, 90, ColorHelpers.GetRGB24toRGB565(255, 255, 255), VerdanaBold14.ID, lux.ToString()); canvas.DrawString( TextAlignmentX, 115, ColorHelpers.GetRGB24toRGB565(255, 255, 255), VerdanaBold14.ID, infraredSpectrum.ToString()); canvas.DrawString( TextAlignmentX, 140, ColorHelpers.GetRGB24toRGB565(255, 255, 255), VerdanaBold14.ID, pressurePa.ToString()); canvas.DrawProgressBar( 148, 171, 154, 10, RoundedCornerStyle.All, RoundedCornerStyle.All, ColorHelpers.GetRGB24toRGB565(214, 214, 214), ColorHelpers.GetRGB24toRGB565(108, 224, 217), ColorHelpers.GetRGB24toRGB565(255, 255, 255), ColorHelpers.GetRGB24toRGB565(233, 15, 7), (int)DaqUtility.MapRange(0, 4095, 0, 100, (double)sample.Values[(int)ADC.A0])); canvas.Execute(); }