package org.ieee.odm.adapter.psse.mapper.dynamic.tur_gov;
import org.ieee.odm.adapter.psse.PSSEAdapter.PsseVersion;
import org.ieee.odm.adapter.psse.mapper.aclf.BasePSSEDataMapper;
import org.ieee.odm.adapter.psse.parser.dynamic.tur_gov.PSSETurGovGASTParser;
import org.ieee.odm.common.ODMException;
import org.ieee.odm.model.IODMModelParser;
import org.ieee.odm.model.base.BaseDataSetter;
import org.ieee.odm.model.dstab.DStabModelParser;
import org.ieee.odm.model.dstab.DStabParserHelper;
import org.ieee.odm.schema.DStabBusXmlType;
import org.ieee.odm.schema.DStabGenDataXmlType;
import org.ieee.odm.schema.GovIEEE1981Type1XmlType;
import org.ieee.odm.schema.GovPSSEGASTModelXmlType;
public class PSSETurGovGASTMapper extends BasePSSEDataMapper{
public PSSETurGovGASTMapper(PsseVersion ver) {
super(ver);
this.dataParser = new PSSETurGovGASTParser(ver);
}
/*
* 0----------1----------2----------3----------4
"IBUS", "Type", "MachId", "R", "T1",
5----------6----------7----------8----------9
"T2", "T3", "AT", "KT", "VMAX",
10----------11--------12---------13---------14
"VMIN", "Dturb",
*/
public void procLineString(String lineStr, DStabModelParser parser) throws ODMException {
this.dataParser.parseFields(lineStr);
int i = dataParser.getInt("IBUS");
final String busId = IODMModelParser.BusIdPreFix+i;
String genId = dataParser.getString("MachId");
//check model type
if(!dataParser.getString("Type").equals("GAST")){
throw new ODMException(" Governor of machine : Id"+
genId+" @ Bus"+i+"is not a GAST type");
}
DStabBusXmlType busXml = parser.getBus(busId);
DStabGenDataXmlType dstabGenData = DStabParserHelper.getDStabContritueGen(busXml, genId);
GovPSSEGASTModelXmlType gov = DStabParserHelper.createGovPSSEGASTXmlType(dstabGenData);
gov.setR(dataParser.getDouble("R"));
gov.setT1(BaseDataSetter.createTimeConstSec(dataParser.getDouble("T1")));
gov.setT2(BaseDataSetter.createTimeConstSec(dataParser.getDouble("T2")));
gov.setT3(BaseDataSetter.createTimeConstSec(dataParser.getDouble("T3")));
gov.setAT(dataParser.getDouble("AT"));
gov.setKT(dataParser.getDouble("KT"));
gov.setVMAX(dataParser.getDouble("VMAX"));
gov.setVMIN(dataParser.getDouble("VMIN"));
gov.setDturb(dataParser.getDouble("Dturb"));
}
}