public Diode(Circuit parent, Point origin, string model) : base(parent, origin) { ComponentType = "Diode"; MinLength = 3; ID = parent.GetNextComponentName("D"); ModelFile = "res/models/diodes.xml"; LoadModel(model); PinNames.Add(1, "Anode"); PinNames.Add(2, "Cathode"); }
public bool this[PinNames in_pin] { get { int port = (int)in_pin / 8; int pin = (int)in_pin % 8; switch (port) { case 0: return((m_ppi.PortA & (1 << pin)) != 0); case 1: return((m_ppi.PortB & (1 << pin)) != 0); case 2: return((m_ppi.PortC & (1 << pin)) != 0); } return(false); } set { int port = (int)in_pin / 8; int pin = (int)in_pin % 8; switch (port) { case 0: m_ppi.m_port_A.In = (byte)(m_ppi.m_port_A.In & ~(1 << pin) | (value ? (1 << pin) : 0)); break; case 1: m_ppi.m_port_B.In = (byte)(m_ppi.m_port_B.In & ~(1 << pin) | (value ? (1 << pin) : 0)); break; case 2: m_ppi.m_port_C.In = (byte)(m_ppi.m_port_C.In & ~(1 << pin) | (value ? (1 << pin) : 0)); break; } } }