package org.ieee.odm.adapter.psse.mapper.acsc;
import org.ieee.odm.adapter.psse.PSSEAdapter.PsseVersion;
import org.ieee.odm.adapter.psse.mapper.aclf.BasePSSEDataMapper;
import org.ieee.odm.adapter.psse.parser.acsc.PSSEMachineZeroSeqZParser;
import org.ieee.odm.common.ODMException;
import org.ieee.odm.model.IODMModelParser;
import org.ieee.odm.model.acsc.AcscParserHelper;
import org.ieee.odm.model.acsc.BaseAcscModelParser;
import org.ieee.odm.model.base.BaseDataSetter;
import org.ieee.odm.schema.NetworkXmlType;
import org.ieee.odm.schema.ShortCircuitBusXmlType;
import org.ieee.odm.schema.ShortCircuitGenDataXmlType;
import org.ieee.odm.schema.ZUnitType;
public class PSSEMachineZeroSeqZMapper extends BasePSSEDataMapper{
public PSSEMachineZeroSeqZMapper(PsseVersion ver) {
super(ver);
this.dataParser = new PSSEMachineZeroSeqZParser(ver);
}
/*
* Format
* I, ID, ZRZERO, ZXZERO
For those machines at which the step-up transformer is represented as part of the generator data
(i.e., XTRAN is non-zero), ZZERO (i.e., RZERO + j XZERO) is not used and, in the fault analysis
activities, the step-up transformer is assumed to be a delta wye transformer
*/
public void procLineString(String lineStr, BaseAcscModelParser<? extends NetworkXmlType> parser) throws ODMException {
dataParser.parseFields(lineStr);
String machId = dataParser.getString("ID");
double ZRZERO = dataParser.getDouble("ZRZERO");
double ZXZERO = dataParser.getDouble("ZXZERO");
int i = dataParser.getInt("I");
final String busId = IODMModelParser.BusIdPreFix+i;
ShortCircuitBusXmlType acscBus=(ShortCircuitBusXmlType) parser.getBus(busId);
ShortCircuitGenDataXmlType scGenData= AcscParserHelper.getAcscContritueGen(acscBus, machId);
scGenData.setZeroZ(BaseDataSetter.createZValue(ZRZERO,ZXZERO, ZUnitType.PU));
}
}