public static object GetDeviceValue(this DigitalPortDeviceBase digitalDevice) { switch (digitalDevice) { case Buzzer buzzer: return(buzzer.IsOn ? 1 : 0); case Led led: return(led.IsOn ? 1 : 0); case Button button: return(button.IsPressed ? 1 : 0); case UltrasonicSensor ultrasonicSensor: return(ultrasonicSensor.Distance); default: throw new ArgumentOutOfRangeException(nameof(digitalDevice)); } }
internal static PocketView GetSvg(this DigitalPortDeviceBase digitalDevice) { switch (digitalDevice) { case Buzzer buzzer: return(buzzer.GetSvg()); case Led led: return(led.GetSvg()); case Button button: return(button.GetSvg()); case UltrasonicSensor ultrasonicSensor: return(ultrasonicSensor.GetSvg()); default: throw new ArgumentOutOfRangeException(nameof(digitalDevice)); } }
internal static IHtmlContent DrawSvg(this DigitalPortDeviceBase digitalDevice) { var id = "PiTopMakerArchitecture.Foundation.InteractiveExtension" + Guid.NewGuid().ToString("N"); return(div[id : id](svg(digitalDevice.GetSvg()))); }