/// <summary> /// Add a new Touch Pad at these coordinates /// </summary> /// <param name="x">Millimeters</param> /// <param name="y">Millimeters</param> public void AddTouchPadAtPoint(double x, double y) { var newTouchPad = new Element { Name = "T" + (_touchPads.Count), Package = new PinheadSingle(), X = x, Y = y, Rotation = 90 }; var newTouchPadOut = new Element { Name = _touchPads.Count + "", Package = new PinheadSingle(), X = 5 + 3.81, Y = 15 + 5.08 + (_touchPads.Count * 2.54), //Places output above the Rotation = 90 }; _touchPads.Add(newTouchPad); var padSignal = new Signal(); padSignal.AddContact( element: newTouchPad, padIndex: 0 ); padSignal.AddContact( element: newTouchPadOut, padIndex: 0 ); _board.Elements.Add(newTouchPad); _board.Elements.Add(newTouchPadOut); _board.Signals.Add("N$" + newTouchPad.Name, padSignal); }
/// <summary> /// Ataches the data pin of the last LED to PinheadOut /// </summary> public void attachToOutputPin() { var ledSignal = new Signal(); ledSignal.AddContact( element: _leds.Last(), padIndex: 1 // Data OUT ); ledSignal.AddContact( element: PinheadOut, padIndex: 0 // Data ); _board.Signals.Add("LP2", ledSignal); }
/// <summary> /// Add a new LED at these coordinates /// </summary> /// <param name="x">Millimeters</param> /// <param name="y">Millimeters</param> public void AddLedAtPoint(double x, double y) { var newLed = new Element { Name = "LED" + (_leds.Count), Package = new WS2812B(), X = x, Y = y }; var ledSignal = new Signal(); if (_leds.Count == 0) { //Connect to input pad ledSignal.AddContact( element: Pinhead, padIndex: 2 // Data ); } else { ledSignal.AddContact( element: _leds.Last(), padIndex: 1 // Data OUT ); } ledSignal.AddContact( element: newLed, padIndex: 3 // Data IN ); _leds.Add(newLed); _board.Elements.Add(newLed); _board.Signals.Add("N$" + newLed.Name, ledSignal); _board.Signals["VCC"].AddContact( element: newLed, padIndex: 0 // VCC ); _board.Signals["GND"].AddContact( element: newLed, padIndex: 2 // GND ); }