public ResultDatasetModel ReadDataset(string hostip, Int32 port, string dataaddress) { //instance IedConnection con = new IedConnection(); try { //connection con.Connect(hostip, port); //read data set DataSet mmsresult = con.ReadDataSetValues(dataaddress, null); //get data set values List <Dataset_Result> valuelist = new List <Dataset_Result>(); data_extract dataExtract = new data_extract(); List <string> DataSetDirectory = con.GetDataSetDirectory(dataaddress); int i = 0; foreach (MmsValue value in mmsresult.GetValues()) { var ValueTuple = dataExtract.ExtractValue(value); valuelist.Add(new Dataset_Result { Address = DataSetDirectory[i], Value = ValueTuple }); i += 1; } //con close con.Abort(); ResultDatasetModel result = new ResultDatasetModel { data = valuelist, error = false, errormessage = null }; //destroy instance con.Dispose(); //result return(result); } catch (IedConnectionException e) { ResultDatasetModel result = new ResultDatasetModel() { data = null, error = true, errormessage = e.Message.ToString() }; //insert logs into db Submission dbinsert = new Submission { CreatedAt = DateTime.Now, Content = e.Message.ToString() }; _subSvc.Create(dbinsert); //destroy result con.Dispose(); //result return(result); } }
public IActionResult readdataset([FromBody] Read_Multiplevalues rawdata) { string IpAddress = rawdata.IpAddress; int Port = rawdata.Port; var VarAddress = rawdata.VarAddress; Read_Write readwrite = new Read_Write(_subSvc); ResultDatasetModel data = readwrite.ReadMultipleVariableValues(IpAddress, Port, VarAddress); return(Json(data)); }
public IActionResult readrcb([FromBody] Read_Dataset rawdata) { string IpAddress = rawdata.IpAddress; int Port = rawdata.Port; string VarAddress = rawdata.VarAddress; Read_Write readwrite = new Read_Write(_subSvc); ResultDatasetModel data = readwrite.ReadDataset(IpAddress, Port, VarAddress); return(Json(data)); }
public ResultDatasetModel ReadRCB(string hostip, Int32 port, string dataaddress) { //instance IedConnection con = new IedConnection(); try { //connection con.Connect(hostip, port); //read data set // create a new data set List <string> dataSetElements = new List <string>(); dataSetElements.Add("simpleIOGenericIO/GGIO1.AnIn1.mag.f[MX]"); dataSetElements.Add("simpleIOGenericIO/GGIO1.AnIn2.mag.f[MX]"); dataSetElements.Add("simpleIOGenericIO/GGIO1.AnIn3.mag.f[MX]"); dataSetElements.Add("simpleIOGenericIO/GGIO1.AnIn4.mag.f[MX]"); // permanent (domain specific) data set //string dataSetReference = "simpleIOGenericIO/LLN0.ds1"; // temporary (association specific) data set string dataSetReference = "@ss"; // Note: this function will throw an exception when a data set with the same name already exists con.CreateDataSet(dataSetReference, dataSetElements); // reconfigure existing RCB with new data set string rcbReference = "simpleIOGenericIO/LLN0.RP.EventsRCB01"; ReportControlBlock rcb = con.GetReportControlBlock(rcbReference); rcb.GetRCBValues(); // note: the second parameter is not required! rcb.InstallReportHandler(reportHandler, rcb); string rcbDataSetReference = dataSetReference.Replace('.', '$'); rcb.SetDataSetReference(rcbDataSetReference); rcb.SetTrgOps(TriggerOptions.DATA_CHANGED | TriggerOptions.INTEGRITY); rcb.SetIntgPd(5000); rcb.SetRptEna(true); rcb.SetRCBValues(); // Console.WriteLine(mmsresult.GetRCBValues()); List <Dataset_Result> valuelist = new List <Dataset_Result>(); data_extract dataExtract = new data_extract(); //con close con.Abort(); ResultDatasetModel result = new ResultDatasetModel { data = valuelist, error = false, errormessage = null }; //destroy instance con.Dispose(); //result return(result); } catch (IedConnectionException e) { ResultDatasetModel result = new ResultDatasetModel() { data = null, error = true, errormessage = e.Message.ToString() }; //insert logs into db Submission dbinsert = new Submission { CreatedAt = DateTime.Now, Content = e.Message.ToString() }; _subSvc.Create(dbinsert); //destroy result con.Dispose(); //result return(result); } }
public ResultDatasetModel ReadMultipleVariableValues(string hostip, Int32 port, string[] valueaddress) { //instance IedConnection con = new IedConnection(); try { //connection con.Connect(hostip, port); //dataset elements List <string> dataSetElements = new List <string>(); foreach (string address in valueaddress) { dataSetElements.Add(address); } string LDname = dataSetElements[0].Split("/")[0]; string LNname = dataSetElements[0].Split("/")[1].Split(".")[0]; string DSname = "ReadValues"; string dataSetName = LDname + "/" + LNname + "." + DSname; //create dataset con.CreateDataSet(dataSetName, dataSetElements); //read data set DataSet mmsresult = con.ReadDataSetValues(dataSetName, null); List <string> DataSetDirectory = con.GetDataSetDirectory(dataSetName); if (DataSetDirectory != null) { //delete dataset con.DeleteDataSet(dataSetName); } //con close con.Abort(); //get data set values List <Dataset_Result> valuelist = new List <Dataset_Result>(); data_extract dataExtract = new data_extract(); int i = 0; foreach (var value in mmsresult.GetValues()) { var ValueTuple = dataExtract.ExtractValue(value); valuelist.Add(new Dataset_Result { Address = DataSetDirectory[i], Value = ValueTuple }); i += 1; } ResultDatasetModel result = new ResultDatasetModel { data = valuelist, error = false, errormessage = null }; //destroy instance con.Dispose(); //result return(result); } catch (IedConnectionException e) { ResultDatasetModel result = new ResultDatasetModel() { data = null, error = true, errormessage = e.Message.ToString() }; //insert logs into db Submission dbinsert = new Submission { CreatedAt = DateTime.Now, Content = e.Message.ToString() }; _subSvc.Create(dbinsert); //destroy result con.Dispose(); //result return(result); } }