public VoltVarController ReadFrame(string inputdatafolder, string fileName, int rowNumber) { ReadInputAdapter ReadIn = new ReadInputAdapter(); VoltVarController vc = new VoltVarController(); string SubAlarmPath = "SubAlarm.csv"; string SubInformationPath = "SubInformation.csv"; string LtcStatusPath = "LtcStatus.csv"; ReadIn.ReadSubAlarm(vc, inputdatafolder + SubAlarmPath); ReadIn.ReadSubInformation(vc, inputdatafolder + SubInformationPath, rowNumber); ReadIn.ReadLtcStatus(vc, inputdatafolder + LtcStatusPath); vc.LinkNetworkComponents(vc.SubstationAlarmDevice.ZNTX, vc.SubstationAlarmDevice.ZNCP); ReadIn.ReadTransformer(vc, inputdatafolder, rowNumber); ReadIn.ReadCapBanks(vc, inputdatafolder, rowNumber); ReadIn.CreateDictionary(vc); //vc.SerializeToXml(fileName); return(vc); }
public static void Main() { // set the directory string testCase = (@"C:\Users\Duotong\Desktop\2019SUM\LocalVoltageControl\Test1\\"); string inputdatafolder = (@"C:\Users\Duotong\Desktop\2019SUM\LocalVoltageControl\Test1\Data\\"); string logsfolder = (@"C:\Users\Duotong\Desktop\2019SUM\LocalVoltageControl\Test1\Logs\\"); string pythonCmdPath = (@"C:\Users\Duotong\Desktop\2019SUM\LocalVoltageControl\Test1\pythonCode\\"); // Set the Path for BenchMark Model and Configuration string caseName = testCase + "2019SUM_2013Series_Updated_forLocalVoltageControl_BenchMark.sav"; string testCaseName = testCase + "2019SUM_2013Series_Updated_forLocalVoltageControl_BenchMark_test.sav"; string configurationPathName = inputdatafolder + "Configurations.xml"; VoltVarControllerAdapter VCAdapter = new VoltVarControllerAdapter(); ReadInputAdapter ReadIn = new ReadInputAdapter(); VoltVarController Frame = new VoltVarController(); PythonScripts Python = new PythonScripts(); VoltVarController PreviousFrame = new VoltVarController(); #region [ Initialization ] Python.CleanCmd(pythonCmdPath + "CleanData.py", inputdatafolder, logsfolder, pythonCmdPath, caseName, testCaseName); // clean the inputd data, delete the logs, and copy the benchmark model VCAdapter.ConfigurationPathName = configurationPathName; VCAdapter.Initialize(); PreviousFrame = VoltVarController.DeserializeFromXml(configurationPathName); #endregion #region [ Execute Program for Each Frame ] for (int i = 0; i < 30; i++) { int rowNumber = i + 1; string inputFileName = inputdatafolder + String.Format("{0:yyyy-MM-dd hh-mm-ss}_{1}", DateTime.UtcNow, rowNumber) + ".xml"; string logsFileName = logsfolder + String.Format("{0:yyyy-MM-dd hh-mm-ss}_{1}", DateTime.UtcNow, rowNumber) + " Logs.xml"; Frame = ReadIn.ReadFrame(inputdatafolder, inputFileName, rowNumber); VCAdapter.PublishFrame(Frame, inputdatafolder, PreviousFrame); PreviousFrame = VCAdapter.InputFrame; VCAdapter.InputFrame.SerializeToXml(inputFileName); VCAdapter.SerializeToXml(logsFileName); #region [ Control PSSE ] try { Python.RunCmd(pythonCmdPath + "DVPScaleLoad.py", VCAdapter.LogMessage, inputdatafolder, VCAdapter.InputFrame.SubstationInformation, testCaseName, VCAdapter.InputFrame.ControlCapacitorBanks[0], VCAdapter.InputFrame.ControlCapacitorBanks[1]); //Console.ReadLine(); //if (i == 0) //{ // Console.ReadLine(); //} } catch { Console.ReadLine(); } #endregion } #endregion }