public void OnGet() { IndexModel viewdata = new IndexModel(); IedConnection con = new IedConnection(); string hostname; hostname = "100.100.100.100"; Console.WriteLine("Connect to " + hostname); try { con.Connect(hostname, 102); string rcbReference3 = "TEMPLATEMEAS/LLN0.RP.urcbAinA01"; // string rcbReference3 = "TEMPLATECTRL/LLN0.BR.brcbDinD01"; ReportControlBlock rcb3 = con.GetReportControlBlock(rcbReference3); rcb3.GetRCBValues(); if (rcb3.IsBuffered()) { Console.WriteLine("RCB: " + rcbReference3 + " is buffered"); } rcb3.InstallReportHandler(reportHandler, rcb3); rcb3.SetOptFlds(ReportOptions.REASON_FOR_INCLUSION | ReportOptions.SEQ_NUM | ReportOptions.TIME_STAMP | ReportOptions.CONF_REV | ReportOptions.ENTRY_ID | ReportOptions.DATA_REFERENCE | ReportOptions.DATA_SET); rcb3.SetTrgOps(TriggerOptions.DATA_CHANGED | TriggerOptions.INTEGRITY); rcb3.SetIntgPd(2000); rcb3.SetRptEna(true); rcb3.SetRCBValues(); /* run until Ctrl-C is pressed */ Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e) { e.Cancel = true; IndexModel.running = false; }; /* stop main loop when connection is lost */ con.InstallConnectionClosedHandler(delegate(IedConnection connection) { Console.WriteLine("Connection closed"); IndexModel.running = false; }); while (running) { Thread.Sleep(10); } /* Dispose the RCBs when you no longer need them */ rcb3.Dispose(); con.Abort(); con.Dispose(); } catch (IedConnectionException e) { Console.WriteLine("Error: " + e.Message); con.Dispose(); } }
//Testing private static void reportHandler(Report report, object parameter) { IndexModel viewdata = new IndexModel(); MmsValue values = report.GetDataSetValues(); for (int i = 0; i < values.Size(); i++) { if (report.GetReasonForInclusion(i) != ReasonForInclusion.REASON_NOT_INCLUDED) { if (i == 0) { viewdata.ViewData["VphaseA"] = values.GetElement(i); } if (i == 1) { viewdata.ViewData["VphaseB"] = values.GetElement(i); } if (i == 2) { viewdata.ViewData["VphaseC"] = values.GetElement(i); } if (i == 3) { viewdata.ViewData["VphaseAB"] = values.GetElement(i); } if (i == 4) { viewdata.ViewData["VphaseBC"] = values.GetElement(i); } if (i == 5) { viewdata.ViewData["VphaseCA"] = values.GetElement(i); } if (i == 7) { viewdata.ViewData["AphaseA"] = values.GetElement(i); } if (i == 8) { viewdata.ViewData["AphaseB"] = values.GetElement(i); } if (i == 9) { viewdata.ViewData["AphaseC"] = values.GetElement(i); } if (i == 15) { viewdata.ViewData["Power"] = values.GetElement(i); } if (i == 16) { viewdata.ViewData["Vars"] = values.GetElement(i); } if (i == 17) { viewdata.ViewData["Truepower"] = values.GetElement(i); } if (i == 18) { viewdata.ViewData["Pf"] = values.GetElement(i); } if (i == 19) { viewdata.ViewData["Freq"] = values.GetElement(i); } } } }