Ejemplo n.º 1
0
  @Override
  public int edit() {
    Parser parser = Parser.getInstance();

    // continue parsing with contents of parser
    activeEnergyMeterObj = (EnergyMeterObj) elementList.getActive();
    DSS.activeCircuit.setActiveCktElement(activeEnergyMeterObj);

    boolean doRecalc = false;

    EnergyMeterObj elem = activeEnergyMeterObj;

    elem.setMeteredElementChanged(false);

    int paramPointer = -1;
    String paramName = parser.getNextParam();
    String param = parser.stringValue();

    while (param.length() > 0) {
      if (paramName.length() == 0) {
        paramPointer += 1;
      } else {
        paramPointer = commandList.getCommand(paramName);
      }

      if (paramPointer >= 0 && paramPointer < numProperties)
        elem.setPropertyValue(paramPointer, param);

      switch (paramPointer) {
        case -1:
          DSS.doSimpleMsg(
              "Unknown parameter \""
                  + paramName
                  + "\" for object \""
                  + getClassName()
                  + "."
                  + elem.getName()
                  + "\"",
              520);
          break;
        case 0:
          elem.setElementName(param.toLowerCase());
          break;
        case 1:
          elem.setMeteredTerminalIdx(parser.integerValue() - 1);
          break;
        case 2: /* Actions */
          switch (param.toLowerCase().charAt(0)) {
            case 'a':
              elem.allocateLoad();
              break;
            case 'c':
              elem.resetRegisters();
              break;
            case 'r':
              elem.reduceZone();
              break;
            case 's':
              elem.saveRegisters();
              break;
            case 't':
              elem.takeSample();
              break;
            case 'z':
              elem.zoneDump();
              break;
          }
          break;
        case 3:
          processOptions(param);
          break;
        case 4:
          elem.setMaxZoneKVANorm(parser.doubleValue());
          break;
        case 5:
          elem.setMaxZoneKVAEmerg(parser.doubleValue());
          break;
        case 6:
          parser.parseAsVector(elem.getNumPhases(), elem.getSensorCurrent()); // inits to zero
          break;
        case 7:
          Util.interpretAndAllocStrArray(
              param, elem.getDefinedZoneListSize(), elem.getDefinedZoneList());
          break;
        case 8:
          elem.setLocalOnly(Util.interpretYesNo(param));
          break;
        case 9:
          interpretRegisterMaskArray(elem.getTotalsMask());
          break;
        case 10:
          elem.setLosses(Util.interpretYesNo(param));
          break;
        case 11:
          elem.setLineLosses(Util.interpretYesNo(param));
          break;
        case 12:
          elem.setXfmrLosses(Util.interpretYesNo(param));
          break;
        case 13:
          elem.setSeqLosses(Util.interpretYesNo(param));
          break;
        case 14:
          elem.setThreePhaseLosses(Util.interpretYesNo(param));
          break;
        case 15:
          elem.setVBaseLosses(Util.interpretYesNo(param));
          break;
        case 16:
          elem.setPhaseVoltageReport(Util.interpretYesNo(param));
          break;
          /* case 10: aem.setHasFeeder(Utilities.interpretYesNo(Param)); break;*/
        default:
          classEdit(activeEnergyMeterObj, paramPointer - EnergyMeter.NumPropsThisClass);
          break;
      }

      switch (paramPointer) {
        case 0:
          elem.setMeteredElementChanged(true);
          doRecalc = true;
          break;
        case 1:
          elem.setMeteredElementChanged(true);
          doRecalc = true;
          break;
        case 10:
          if (elem.hasFeeder()) {
            doRecalc = true;
          } else {
            elem.removeFeederObj();
          }
          break;
      }

      paramName = parser.getNextParam();
      param = parser.stringValue();
    }

    if (doRecalc) elem.recalcElementData(); // when some basic data have changed

    return 0;
  }
Ejemplo n.º 2
0
  /**
   * Set DSS options.
   *
   * <p>Solve command is re-routed here first to set options before solving.
   */
  public static int doSetCmd(int solveOption) {
    LoadShapeObj testLoadShapeObj;
    int[] numRegs;

    Parser parser = Parser.getInstance();
    Circuit ckt = DSS.activeCircuit;

    int ret = 0;

    // continue parsing command line
    int paramPointer = -1;
    String paramName = parser.getNextParam();
    String param = parser.stringValue();

    while (param.length() > 0) {
      if (paramName.length() == 0) {
        paramPointer += 1;
      } else {
        paramPointer = optionList.getCommand(paramName);
      }

      switch (paramPointer) {
        case -1:
          DSS.doSimpleMsg("Unknown parameter \"" + paramName + "\" for set command ", 130);
          break;
        case 0:
        case 11:
          DSSClassDefs.setObjectClass(param);
          break;
        case 1:
        case 12:
          DSS.setObject(param);
          break;
        case 2:
          ckt.getSolution().setIntHour(parser.integerValue());
          break;
        case 3:
          ckt.getSolution().getDynaVars().t = parser.doubleValue();
          break;
        case 4:
          ckt.getSolution().setYear(parser.integerValue());
          ckt.setDefaultGrowthFactor(
              Math.pow(ckt.getDefaultGrowthRate(), ckt.getSolution().getYear() - 1));
          break;
        case 5:
          ckt.getSolution().setFrequency(parser.doubleValue());
          break;
        case 6:
          ckt.getSolution().getDynaVars().h = Util.interpretTimeStepSize(param);
          break;
        case 17:
          ckt.getSolution().getDynaVars().h = Util.interpretTimeStepSize(param);
          break;
        case 7:
          ckt.getSolution().setMode(Util.interpretSolveMode(param)); // see DSSGlobals
          break;
        case 8:
          ckt.getSolution().setRandomType(Util.interpretRandom(param));
          break;
        case 9:
          ckt.getSolution().setNumberOfTimes(parser.integerValue());
          break;
        case 10:
          ExecHelper.setTime();
          break;
        case 13:
          ExecHelper.setActiveCircuit(param);
          break;
        case 14:
          DSS.defaultEditor = param; // 'Editor='
          break;
        case 15:
          ckt.getSolution().setConvergenceTolerance(parser.doubleValue());
          break;
        case 16:
          ckt.getSolution().setMaxIterations(parser.integerValue());
          break;
        case 18:
          ckt.getSolution()
              .setDefaultLoadModel(
                  Util.interpretLoadModel(param)); // for reverting to last on specified
          ckt.getSolution().setLoadModel(ckt.getSolution().getDefaultLoadModel());
          break;
        case 19:
          ckt.setLoadMultiplier(parser.doubleValue()); // set using loadMultiplier property
          break;
        case 20:
          ckt.setNormalMinVolts(parser.doubleValue());
          break;
        case 21:
          ckt.setNormalMaxVolts(parser.doubleValue());
          break;
        case 22:
          ckt.setEmergMinVolts(parser.doubleValue());
          break;
        case 23:
          ckt.setEmergMaxVolts(parser.doubleValue());
          break;
        case 24:
          ckt.getDefaultDailyShapeObj().setMean(parser.doubleValue() / 100.0);
          break;
        case 25:
          ckt.getDefaultDailyShapeObj().setStdDev(parser.doubleValue() / 100.0);
          break;
        case 26:
          ckt.setLoadDurCurve(param);
          ckt.setLoadDurCurveObj((LoadShapeObj) DSS.loadShapeClass.find(param));
          if (ckt.getLoadDurCurveObj() == null)
            DSS.doSimpleMsg("Load-duration curve not found.", 131);
          break;
        case 27:
          ckt.setDefaultGrowthRate(1.0 + parser.doubleValue() / 100.0);
          ckt.setDefaultGrowthFactor(
              Math.pow(ckt.getDefaultGrowthRate(), ckt.getSolution().getYear() - 1));
          break;
        case 28:
          ckt.getAutoAddObj().setGenKW(parser.doubleValue());
          break;
        case 29:
          ckt.getAutoAddObj().setGenPF(parser.doubleValue());
          break;
        case 30:
          ckt.getAutoAddObj().setCapKVAr(parser.doubleValue());
          break;
        case 31:
          ckt.getAutoAddObj().setAddType(Util.interpretAddType(param));
          break;
        case 32:
          ckt.setDuplicatesAllowed(Util.interpretYesNo(param));
          break;
        case 33:
          ckt.setZonesLocked(Util.interpretYesNo(param));
          break;
        case 34:
          ckt.setUEWeight(parser.doubleValue());
          break;
        case 35:
          ckt.setLossWeight(parser.doubleValue());
          break;
        case 36:
          numRegs = new int[1];
          ckt.setUERegs(Util.parseIntArray(ckt.getUERegs(), numRegs, param));
          ckt.setNumUERegs(numRegs[0]);
          break;
        case 37:
          numRegs = new int[1];
          ckt.setLossRegs(Util.parseIntArray(ckt.getLossRegs(), numRegs, param));
          ckt.setNumLossRegs(numRegs[0]);
          break;
        case 38:
          ExecHelper.doLegalVoltageBases();
          break;
        case 39:
          ckt.getSolution().setAlgorithm(Util.interpretSolveAlg(param));
          break;
        case 40:
          ckt.setTrapezoidalIntegration(Util.interpretYesNo(param));
          break;
        case 41:
          ExecHelper.doAutoAddBusList(param);
          break;
        case 42:
          ckt.getSolution().setControlMode(Util.interpretControlMode(param));
          ckt.getSolution()
              .setDefaultControlMode(
                  ckt.getSolution()
                      .getControlMode()); // always revert to last one specified in a script
          break;
        case 43:
          ckt.getControlQueue().setTrace(Util.interpretYesNo(param));
          break;
        case 44:
          ckt.setGenMultiplier(parser.doubleValue());
          break;
        case 45:
          testLoadShapeObj = (LoadShapeObj) DSS.loadShapeClass.find(param);
          if (testLoadShapeObj != null) ckt.setDefaultDailyShapeObj(testLoadShapeObj);
          break;
        case 46:
          testLoadShapeObj = (LoadShapeObj) DSS.loadShapeClass.find(param);
          if (testLoadShapeObj != null) ckt.setDefaultYearlyShapeObj(testLoadShapeObj);
          break;
        case 47:
          ExecHelper.doSetAllocationFactors(parser.doubleValue());
          break;
        case 48:
          ckt.setPositiveSequence(Util.interpretCktModel(param));
          break;
        case 49:
          ckt.setPriceSignal(parser.doubleValue());
          break;
        case 50:
          ckt.setPriceCurve(param);
          ckt.setPriceCurveObj((PriceShapeObj) DSS.loadShapeClass.find(param));
          if (ckt.getPriceCurveObj() == null)
            DSS.doSimpleMsg("PriceShape: \"" + param + "\" not found.", 132);
          break;
        case 51:
          if (ckt.getActiveCktElement() != null) {
            CktElement elem = ckt.getActiveCktElement();
            elem.setActiveTerminalIdx(parser.integerValue());
            DSS.setActiveBus(
                Util.stripExtension(
                    elem.getBus(elem.getActiveTerminalIdx()))); // bus connected to terminal
          }
          break;
        case 52:
          ckt.setFundamental(
              parser.doubleValue()); // set base frequency for system (used henceforth)
          ckt.getSolution().setFrequency(parser.doubleValue());
          break;
        case 53:
          ExecHelper.doHarmonicsList(param);
          break;
        case 54:
          ckt.getSolution().setMaxControlIterations(parser.integerValue());
          break;
        case 55:
          ret = DSS.setActiveBus(param); // see DSS globals
          break;
        case 56:
          DSS.setDataPath(param); // set a legal data path
          break;
        case 57:
          ExecHelper.doKeeperBusList(param);
          break;
        case 58:
          ExecHelper.doSetReduceStrategy(param);
          break;
        case 59:
          DSS.energyMeterClass.setSaveDemandInterval(Util.interpretYesNo(param));
          break;
        case 60:
          ckt.setPctNormalFactor(parser.doubleValue());
          ExecHelper.doSetNormal(ckt.getPctNormalFactor());
          break;
        case 61:
          DSS.energyMeterClass.setDIVerbose(Util.interpretYesNo(param));
          break;
        case 62:
          ckt.setCaseName(parser.stringValue());
          break;
        case 63:
          ckt.setNodeMarkerCode(parser.integerValue());
          break;
        case 64:
          ckt.setNodeMarkerWidth(parser.integerValue());
          break;
        case 65:
          ckt.setLogEvents(Util.interpretYesNo(param));
          break;
        case 66:
          Executive.getInstance().setRecorderOn(Util.interpretYesNo(param));
          break;
        case 67:
          DSS.energyMeterClass.setDoOverloadReport(Util.interpretYesNo(param));
          break;
        case 68:
          DSS.energyMeterClass.setDoVoltageExceptionReport(Util.interpretYesNo(param));
          break;
        case 69:
          ExecHelper.doSetCFactors(parser.doubleValue());
          break;
        case 70:
          DSS.autoShowExport = Util.interpretYesNo(param);
          break;
        case 71:
          DSS.maxAllocationIterations = parser.integerValue();
          break;
        case 72:
          DSS.defaultBaseFreq = parser.doubleValue();
          ckt.setFundamental(
              parser.doubleValue()); // set base frequency for system (used henceforth)
          ckt.getSolution().setFrequency(parser.doubleValue());
          break;
        case 73:
          ckt.setMarkSwitches(Util.interpretYesNo(param));
          break;
        case 74:
          ckt.setSwitchMarkerCode(parser.integerValue());
          break;
        case 75:
          DSS.daisySize = parser.doubleValue();
          break;
        case 76:
          ckt.setMarkTransformers(Util.interpretYesNo(param));
          break;
        case 77:
          ckt.setTransMarkerCode(parser.integerValue());
          break;
        case 78:
          ckt.setTransMarkerSize(parser.integerValue());
          break;
        case 79:
          ckt.setActiveLoadShapeClass(Util.interpretLoadShapeClass(param));
          break;
        case 80:
          DSS.defaultEarthModel = Util.interpretEarthModel(param);
          break;
        case 81:
          DSS.logQueries = Util.interpretYesNo(param);
          if (DSS.logQueries) DSS.resetQueryLogFile();
        default:
          // ignore excess parameters
          break;
      }

      switch (paramPointer) {
        case 3:
          ckt.getSolution().updateDblHour();
          break;
        case 4:
          ckt.getSolution().updateDblHour();
          break;
      }

      paramName = parser.getNextParam();
      param = parser.stringValue();
    }

    if (solveOption == 1) ExecHelper.doSolveCmd();

    return ret;
  }
Ejemplo n.º 3
0
  @Override
  public int edit() {
    Parser parser = Parser.getInstance();

    // continue parsing with contents of parser
    activeLineSpacingObj = (LineSpacingObj) elementList.getActive();
    DSS.activeDSSObject = activeLineSpacingObj;

    LineSpacingObj elem = activeLineSpacingObj;

    int paramPointer = -1;
    String paramName = parser.getNextParam();
    String param = parser.stringValue();

    while (param.length() > 0) {
      if (paramName.length() == 0) {
        paramPointer += 1;
      } else {
        paramPointer = commandList.getCommand(paramName);
      }

      if (paramPointer >= 0 && paramPointer < numProperties)
        elem.setPropertyValue(paramPointer, param);

      switch (paramPointer) {
        case -1:
          DSS.doSimpleMsg(
              "Unknown parameter \""
                  + paramName
                  + "\" for object \""
                  + getClassName()
                  + "."
                  + elem.getName()
                  + "\"",
              10101);
          break;
        case 0:
          elem.setNWires(parser.integerValue()); // forces reallocations
          break;
        case 1:
          elem.setNPhases(parser.integerValue());
          break;
        case 2:
          interpretArray(param, SpcParmChoice.X);
          break;
        case 3:
          interpretArray(param, SpcParmChoice.H);
          break;
        case 4:
          elem.setUnits(LineUnits.interpretUnitsCode(param));
          break;
        default:
          // inherited parameters
          classEdit(activeLineSpacingObj, paramPointer - LineSpacing.NumPropsThisClass);
          break;
      }

      switch (paramPointer) {
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
          elem.setDataChanged(true);
          break;
      }

      paramName = parser.getNextParam();
      param = parser.stringValue();
    }

    return 0;
  }