Package cl.alejo.jcsim.csim.dom

Examples of cl.alejo.jcsim.csim.dom.Gate


      for (int i = 0; i < gateData.length; i++) {
        // Primero recorro el arreglo de datos y parametros
        int[][] connectTo = gateData[i].connectTo;

        // Ahora recorro todos los pines de ese gate conectandolos
        Gate gateA = gates[i];
        int pinCountGateA = gateA.pinCount();
        for (int pinId = 0; pinId < pinCountGateA; pinId++) {
          // REcupero el gate y el pin
          Gate gateB = gates[connectTo[pinId][0]];

          // Si las compuertas son distintas
          if (gateA != gateB) {
            Pin pinB = gateB.getPin(connectTo[pinId][1]);
            Pin pinA = gateA.getPin(pinId);
            // Los conecto si no son los mismos
            if (pinA != pinB)
              pinA.connect(pinB);
          }
View Full Code Here


    // Ahora la vamos llenando
    // Para cada gate
    int currentGate = 0;
    Iterator iterGate = listGates.iterator();
    while (iterGate.hasNext()) {
      Gate gate = (Gate) iterGate.next();
      int[][] connectTo = gateData[currentGate].connectTo;

      // ahora por cada pin
      int pcount = gate.pinCount();
      for (int pinId = 0; pinId < pcount; pinId++) {
        Pin pin = gate.getPin(pinId);

        // Tomo el siguiente
        Pin nextPin = (Pin) pin.next();

        // Busco el indice del gate en la lista
View Full Code Here

    Iterator iter = listGates.iterator();
    int i = 0;

    // Ciclo
    while (iter.hasNext()) {
      Gate gate = (Gate) iter.next();
      int[][] connectTo = new int[gate.pinCount()][2];
      gateData[i++] = new EncapsulatedGateData(gate.getGateDescriptor(), (GateParameters) gate.getParameters()
        .clone(), connectTo);
      // El indice aumenta en la cantidad de pines de la compuerta

    }
  }
View Full Code Here

    // ********************************************************************************
    // El reloj
    // ********************************************************************************
    ParamClk paramClk = new ParamClk(300, 300);
    GateDescriptor descClk = new ClkDescriptor((ParamClk) paramClk.clone());
    Gate clk = new Clk(circuit, descClk, paramClk);
    IconGate iconClk = new IconGate(clk);
    circuit.addIconGate(iconClk, 100, 50);

    // El switch
    GateDescriptor descSwitch = new SwitchDescriptor((ParamSwitch) paramSwitch.clone());
    Gate switch1 = new Switch(circuit, descSwitch, paramSwitch);
    IconGate iconSwitch = new IconGate(switch1);
    circuit.addIconGate(iconSwitch, 300, 50);

    // Una banderita
    GateDescriptor descFlag = new FlagDescriptor();
    Gate flag = new Flag(circuit, descFlag, new ParamVoid());
    IconGate iconFlag = new IconGate(flag);
    circuit.addIconGate(iconFlag, 200, 50); // Superfluo

    // El lector de 7 segmentos
    GateDescriptor descDisp = new SegmentDisplayDescriptor((ParamSegmentDisplay) paramDisp.clone());
    Gate disp = new SegmentDisplay(circuit, descDisp, paramDisp);
    IconGate iconDisp = new IconGate(disp);
    circuit.addIconGate(iconDisp, 250, 50); // Superfluo */

    // Agrego el label
    circuit.addIconGate(iconLabel, 300, 100);
View Full Code Here

    int ndx = pinId;
    int ndxGate = connectOut[ndx][0];
    int ndxPin = connectOut[ndx][1];

    // Rescato el primer gate
    Gate gate = gates[ndxGate];
    Pin pinFirst = gate.getPin(ndxPin);

    // Agrego sus pines
    gate.getPinsAt(ndxPin, listPin);
    do {
      // busco el siguiente
      int[][] connectTo = gateData[ndxGate].connectTo;
      ndxGate = connectTo[ndxPin][0];
      ndxPin = connectTo[ndxPin][1];
      gate = gates[ndxGate];
      pinAux = gate.getPin(ndxPin);

      // Lo invoco recursivamente
      gate.getPinsAt(ndxPin, listPin);
    } while (pinFirst != pinAux);
  }
View Full Code Here

TOP

Related Classes of cl.alejo.jcsim.csim.dom.Gate

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.