|
|
@ -4,6 +4,7 @@ using System.Threading;
|
|
|
|
|
|
|
|
|
|
|
|
using IEC61850.Client;
|
|
|
|
using IEC61850.Client;
|
|
|
|
using IEC61850.Common;
|
|
|
|
using IEC61850.Common;
|
|
|
|
|
|
|
|
using System.Runtime.Remoting.Metadata.W3cXsd2001;
|
|
|
|
|
|
|
|
|
|
|
|
namespace reporting
|
|
|
|
namespace reporting
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -21,6 +22,14 @@ namespace reporting
|
|
|
|
|
|
|
|
|
|
|
|
MmsValue values = report.GetDataSetValues ();
|
|
|
|
MmsValue values = report.GetDataSetValues ();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
byte[] entryId = report.GetEntryId ();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (entryId != null) {
|
|
|
|
|
|
|
|
SoapHexBinary shb = new SoapHexBinary(entryId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Console.WriteLine (" entryID: " + shb.ToString ());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Console.WriteLine (" report dataset contains " + values.Size () + " elements");
|
|
|
|
Console.WriteLine (" report dataset contains " + values.Size () + " elements");
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < values.Size(); i++) {
|
|
|
|
for (int i = 0; i < values.Size(); i++) {
|
|
|
@ -53,9 +62,7 @@ namespace reporting
|
|
|
|
if (args.Length > 0)
|
|
|
|
if (args.Length > 0)
|
|
|
|
hostname = args [0];
|
|
|
|
hostname = args [0];
|
|
|
|
else
|
|
|
|
else
|
|
|
|
hostname = "localhost";
|
|
|
|
hostname = "localhost";
|
|
|
|
|
|
|
|
|
|
|
|
hostname = "10.0.2.2";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Console.WriteLine ("Connect to " + hostname);
|
|
|
|
Console.WriteLine ("Connect to " + hostname);
|
|
|
|
|
|
|
|
|
|
|
@ -64,9 +71,11 @@ namespace reporting
|
|
|
|
|
|
|
|
|
|
|
|
string rcbReference1 = "simpleIOGenericIO/LLN0.RP.EventsRCB01";
|
|
|
|
string rcbReference1 = "simpleIOGenericIO/LLN0.RP.EventsRCB01";
|
|
|
|
string rcbReference2 = "simpleIOGenericIO/LLN0.RP.EventsIndexed01";
|
|
|
|
string rcbReference2 = "simpleIOGenericIO/LLN0.RP.EventsIndexed01";
|
|
|
|
|
|
|
|
string rcbReference3 = "simpleIOGenericIO/LLN0.BR.Measurements01";
|
|
|
|
|
|
|
|
|
|
|
|
ReportControlBlock rcb1 = con.GetReportControlBlock(rcbReference1);
|
|
|
|
ReportControlBlock rcb1 = con.GetReportControlBlock(rcbReference1);
|
|
|
|
ReportControlBlock rcb2 = con.GetReportControlBlock(rcbReference2);
|
|
|
|
ReportControlBlock rcb2 = con.GetReportControlBlock(rcbReference2);
|
|
|
|
|
|
|
|
ReportControlBlock rcb3 = con.GetReportControlBlock(rcbReference3);
|
|
|
|
|
|
|
|
|
|
|
|
rcb1.GetRCBValues();
|
|
|
|
rcb1.GetRCBValues();
|
|
|
|
|
|
|
|
|
|
|
@ -84,6 +93,9 @@ namespace reporting
|
|
|
|
|
|
|
|
|
|
|
|
rcb2.GetRCBValues();
|
|
|
|
rcb2.GetRCBValues();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (rcb2.IsBuffered())
|
|
|
|
|
|
|
|
Console.WriteLine ("RCB: " + rcbReference2 + " is buffered");
|
|
|
|
|
|
|
|
|
|
|
|
rcb2.InstallReportHandler(reportHandler, rcb2);
|
|
|
|
rcb2.InstallReportHandler(reportHandler, rcb2);
|
|
|
|
|
|
|
|
|
|
|
|
rcb2.SetOptFlds(ReportOptions.REASON_FOR_INCLUSION | ReportOptions.SEQ_NUM | ReportOptions.TIME_STAMP |
|
|
|
|
rcb2.SetOptFlds(ReportOptions.REASON_FOR_INCLUSION | ReportOptions.SEQ_NUM | ReportOptions.TIME_STAMP |
|
|
|
@ -94,6 +106,21 @@ namespace reporting
|
|
|
|
|
|
|
|
|
|
|
|
rcb2.SetRCBValues();
|
|
|
|
rcb2.SetRCBValues();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rcb3.GetRCBValues();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (rcb3.IsBuffered())
|
|
|
|
|
|
|
|
Console.WriteLine ("RCB: " + rcbReference3 + " is buffered");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rcb3.InstallReportHandler(reportHandler, rcb2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 */
|
|
|
|
/* run until Ctrl-C is pressed */
|
|
|
|
Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e) {
|
|
|
|
Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e) {
|
|
|
|