//Конструктор public ReadAllSelect(string beginDate, string endDate) { var tagsList = new Tags(); Messur = new List <RoadName>();; var hdas = Connect.ServerHdaConnect(); //var listTag = tagsList.GetMassurm().Select(tags => Convert.ToString(tags.Value)).ToList(); var listTag = new List <string>(); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "NameRoad": listTag.Add(tag.Value); break; } } Signal name = null; var di = new SignalDict(hdas, listTag, null, beginDate, endDate); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "NameRoad": name = di.Dictionary[tag.Value]; break; } } for (var sec = 0; sec <= (name.DtEnd - name.DtBegin).TotalSeconds - 1; sec += 25) { var nm = name.DtBegin.AddSeconds(sec); var nam = Seconds.GetValue(name, nm).OpcRec; var alarms = new RoadName { Time = nam.Timestamp, Name = Convert.ToString(nam.Value) }; if (nam.Value.ToString() == string.Empty) { continue; } var flag = true; Messur.Add(alarms); } }
public ReadStartStop(string beginDate, string endDate) { StlList = new List <TimeStartStop>(); var hdas = Connect.ServerHdaConnect(); var tagsList = new Tags(); Signal opredsignal = null; var listTag = new List <string>(); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "Start": listTag.Add(tag.Value); break; } } var di = new SignalDict(hdas, listTag, null, beginDate, endDate); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "Start": opredsignal = di.Dictionary[tag.Value]; break; } } Debug.Assert(opredsignal != null, "opredsignal != null"); for (var sec = 0; sec <= (opredsignal.DtEnd - opredsignal.DtBegin).TotalSeconds - 1; sec += 25) { var dt = opredsignal.DtBegin.AddSeconds(sec); var alarm = Seconds.GetValue(opredsignal, dt).OpcRec; var alarms = new TimeStartStop { Time = alarm.Timestamp, Value = Convert.ToBoolean(alarm.Value) }; StlList.Add(alarms); } }
public static Opc.Hda.Server ServerHdaConnect() { var tagsList = new Tags(); //Задаем расположение серверов foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "MasterIpHda": MasterIpHda = tag.Value; break; case "SlaveIpHda": SlaveIpHda = tag.Value; break; case "OpcHdaId": OpcHdaId = tag.Value; break; } } //const string masterIpHda = "localhost"; //const string slaveIpHda = "localhost"; //const string opcHdaId = "Infinity.OPCHDAServer"; //Соединение с сервером var url = new Opc.URL("opchda://" + MasterIpHda + "/" + OpcHdaId); var serverHda = new Opc.Hda.Server(new OpcCom.Factory(), url); try { serverHda.Connect(); } catch { url = new Opc.URL("opchda://" + SlaveIpHda + "/" + OpcHdaId); serverHda = new Opc.Hda.Server(new OpcCom.Factory(), url); try { serverHda.Connect(); } catch (Exception) { MessageBox.Show(@"Отсутствует лицензия или проверьте подключения к серверу C:\Tag.ini", @"Ошибка подключения сервера", MessageBoxButton.OK, MessageBoxImage.Error); Environment.Exit(0); } } // System.Threading.Thread.Sleep(1500); return(serverHda); }
public ReadRoadInformation(string beginDate, string endDate) { var tagsList = new Tags(); //Messur = new List<DataRoad>(); var hdas = Connect.ServerHdaConnect(); //var listTag = tagsList.GetMassurm().Select(tags => Convert.ToString(tags.Value)).ToList(); var listTag = new List <string>(); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "MeasuringNum": listTag.Add(tag.Value); break; case "Direction": listTag.Add(tag.Value); break; case "Band": listTag.Add(tag.Value); break; case "Coating": listTag.Add(tag.Value); break; case "DesignCount": listTag.Add(tag.Value); break; case "DesignLayer1": listTag.Add(tag.Value); break; case "DesignLayer2": listTag.Add(tag.Value); break; case "DesignLayer3": listTag.Add(tag.Value); break; case "Customer": listTag.Add(tag.Value); break; case "Builder": listTag.Add(tag.Value); break; case "StandartsDensity": listTag.Add(tag.Value); break; case "StandartsDepth": listTag.Add(tag.Value); break; case "StandartsIRI": listTag.Add(tag.Value); break; case "StandartsLenght": listTag.Add(tag.Value); break; case "StandartsRut": listTag.Add(tag.Value); break; case "StandartsWidth": listTag.Add(tag.Value); break; case "CoefficientTF": listTag.Add(tag.Value); break; case "CoefficientB": listTag.Add(tag.Value); break; case "CoefficientK": listTag.Add(tag.Value); break; } } Signal nummess = null; Signal direction = null; Signal band = null; Signal coating = null; Signal designcount = null; Signal designlayer1 = null; Signal designlayer2 = null; Signal designlayer3 = null; Signal customer = null; Signal builder = null; Signal standartsDensity = null; Signal standartsDepth = null; Signal standartsIRI = null; Signal standartsLenght = null; Signal standartsRut = null; Signal standartsWidth = null; Signal coefficientTF = null; Signal koefficB = null; Signal koefficK = null; var di = new SignalDict(hdas, listTag, null, beginDate, endDate); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "MeasuringNum": nummess = di.Dictionary[tag.Value]; break; case "Direction": direction = di.Dictionary[tag.Value]; break; case "Band": band = di.Dictionary[tag.Value]; break; case "Coating": coating = di.Dictionary[tag.Value]; break; case "DesignCount": designcount = di.Dictionary[tag.Value]; break; case "DesignLayer1": designlayer1 = di.Dictionary[tag.Value]; break; case "DesignLayer2": designlayer2 = di.Dictionary[tag.Value]; break; case "DesignLayer3": designlayer3 = di.Dictionary[tag.Value]; break; case "Customer": customer = di.Dictionary[tag.Value]; break; case "Builder": builder = di.Dictionary[tag.Value]; break; case "StandartsDensity": standartsDensity = di.Dictionary[tag.Value]; break; case "StandartsDepth": standartsDepth = di.Dictionary[tag.Value]; break; case "StandartsIRI": standartsIRI = di.Dictionary[tag.Value]; break; case "StandartsLenght": standartsLenght = di.Dictionary[tag.Value]; break; case "StandartsRut": standartsRut = di.Dictionary[tag.Value]; break; case "StandartsWidth": standartsWidth = di.Dictionary[tag.Value]; break; case "CoefficientTF": coefficientTF = di.Dictionary[tag.Value]; break; case "CoefficientB": koefficB = di.Dictionary[tag.Value]; break; case "CoefficientK": koefficK = di.Dictionary[tag.Value]; break; } } //for (var sec = 0; sec <= (nummess.DtEnd - nummess.DtBegin).TotalSeconds - 1; sec += 25) //{ var nm = nummess.DtBegin.AddSeconds(1); var nume = Seconds.GetValue(nummess, nm).OpcRec; var dct = Seconds.GetValue(direction, nm).OpcRec; var bnd = Seconds.GetValue(band, nm).OpcRec; var coa = Seconds.GetValue(coating, nm).OpcRec; var dc = Seconds.GetValue(designcount, nm).OpcRec; var dl1 = Seconds.GetValue(designlayer1, nm).OpcRec; var dl2 = Seconds.GetValue(designlayer2, nm).OpcRec; var dl3 = Seconds.GetValue(designlayer3, nm).OpcRec; var cr = Seconds.GetValue(customer, nm).OpcRec; var br = Seconds.GetValue(builder, nm).OpcRec; var kfb = Seconds.GetValue(koefficB, nm).OpcRec; var kfk = Seconds.GetValue(koefficK, nm).OpcRec; var stndrtDensity = Seconds.GetValue(standartsDensity, nm).OpcRec; var stndrtDepth = Seconds.GetValue(standartsDepth, nm).OpcRec; var stndrtIRI = Seconds.GetValue(standartsIRI, nm).OpcRec; var stndrtLenght = Seconds.GetValue(standartsLenght, nm).OpcRec; var stndrtRut = Seconds.GetValue(standartsRut, nm).OpcRec; var stndrtWidth = Seconds.GetValue(standartsWidth, nm).OpcRec; var ctf = Seconds.GetValue(coefficientTF, nm).OpcRec; if (coa.Value == null) { coa.Value = "Не задано"; } if (dc.Value == null) { dc.Value = "Не задано"; } if (dl1.Value == null) { dl1.Value = "Не задано"; } if (cr.Value == null) { cr.Value = "Не задано"; } if (br.Value == null) { br.Value = "Не задано"; } if (dct.Value == null) { dct.Value = "Не задано"; } alarms = new DataRoad { NumMess = Convert.ToUInt16(nume.Value), Direction = Convert.ToString(dct.Value), Band = Convert.ToInt16(bnd.Value), TimeStart = Convert.ToString(nume.Timestamp), Coating = Convert.ToString(coa.Value), DesignCount = Convert.ToInt16(dc.Value), DesignLayer1 = Convert.ToDouble(dl1.Value), DesignLayer2 = Convert.ToDouble(dl2.Value), DesignLayer3 = Convert.ToDouble(dl3.Value), Builder = Convert.ToString(br.Value), Customer = Convert.ToString(cr.Value), StandartsDensity = Convert.ToDouble(stndrtDensity.Value), StandartsDepth = Convert.ToDouble(stndrtDepth.Value), StandartsIRI = Convert.ToDouble(stndrtIRI.Value), StandartsLenght = Convert.ToDouble(stndrtLenght.Value), StandartsRut = Convert.ToDouble(stndrtRut.Value), StandartsWidth = Convert.ToDouble(stndrtWidth.Value), CoefficientTF = Convert.ToBoolean(ctf.Value), KoefficB = Convert.ToByte(kfb.Value), KoefficK = Convert.ToByte(kfk.Value), }; //Messur.Add(alarms); //} }
public DataRoadSection(string beginDate, string endDate) { var tagsList = new Tags(); //Messur = new List<DataRoad>(); var hdas = Connect.ServerHdaConnect(); //var listTag = tagsList.GetMassurm().Select(tags => Convert.ToString(tags.Value)).ToList(); var listTag = new List <string>(); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "RoadSegment1": listTag.Add(tag.Value); break; case "RoadSegment2": listTag.Add(tag.Value); break; case "RoadSegment3": listTag.Add(tag.Value); break; case "RoadSegment4": listTag.Add(tag.Value); break; } } Signal road1 = null; Signal road2 = null; Signal road3 = null; Signal road4 = null; var di = new SignalDict(hdas, listTag, null, beginDate, endDate); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "RoadSegment1": road1 = di.Dictionary[tag.Value]; break; case "RoadSegment2": road2 = di.Dictionary[tag.Value]; break; case "RoadSegment3": road3 = di.Dictionary[tag.Value]; break; case "RoadSegment4": road4 = di.Dictionary[tag.Value]; break; } } //for (var sec = 0; sec <= (road1.DtEnd - road1.DtBegin).TotalSeconds - 1; sec += 25) //{ var nm = road1.DtBegin.AddSeconds(1); var rs1 = Seconds.GetValue(road1, nm).OpcRec; var rs2 = Seconds.GetValue(road2, nm).OpcRec; var rs3 = Seconds.GetValue(road3, nm).OpcRec; var rs4 = Seconds.GetValue(road4, nm).OpcRec; alarms = "км" + Convert.ToString(rs1.Value) + "+" + Convert.ToString(rs2.Value) + " - " + "км" + Convert.ToString(rs3.Value) + "+" + Convert.ToString(rs4.Value); //TimeStart = Convert.ToString(rs1.Timestamp) //Messur.Add(alarms); //} }
public ReadAllGraffics(string beginDate, string endDate) { var tagsList = new Tags(); Messur = new List <Graphics>(); var hdas = Connect.ServerHdaConnect(); //var listTag = tagsList.GetMassurm().Select(tags => Convert.ToString(tags.Value)).ToList(); var listTag = new List <string>(); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "Layers": listTag.Add(tag.Value); break; case "Distance": listTag.Add(tag.Value); break; case "Overallassessment": listTag.Add(tag.Value); break; case "CoefficientB": listTag.Add(tag.Value); break; case "CoefficientK": listTag.Add(tag.Value); break; case "Layer1": listTag.Add(tag.Value); break; case "Layer2": listTag.Add(tag.Value); break; case "Layer3": listTag.Add(tag.Value); break; case "Sensor1": listTag.Add(tag.Value); break; case "Sensor2": listTag.Add(tag.Value); break; } } Signal distance = null; Signal countLayer = null; Signal generalState = null; Signal koefficB = null; Signal koefficK = null; Signal layer1 = null; Signal layer2 = null; Signal layer3 = null; Signal n1 = null; Signal n2 = null; var di = new SignalDict(hdas, listTag, null, beginDate, endDate); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "Layers": countLayer = di.Dictionary[tag.Value]; break; case "Distance": distance = di.Dictionary[tag.Value]; break; case "Overallassessment": generalState = di.Dictionary[tag.Value]; break; case "CoefficientB": koefficB = di.Dictionary[tag.Value]; break; case "CoefficientK": koefficK = di.Dictionary[tag.Value]; break; case "Layer1": layer1 = di.Dictionary[tag.Value]; break; case "Layer2": layer2 = di.Dictionary[tag.Value]; break; case "Layer3": layer3 = di.Dictionary[tag.Value]; break; case "Sensor1": n1 = di.Dictionary[tag.Value]; break; case "Sensor2": n2 = di.Dictionary[tag.Value]; break; } } //int schet = Convert.ToInt16(((countLayer.DtEnd - countLayer.DtBegin).TotalSeconds)/k); //if (schet == 0) //{ // schet = 1; //} for (var sec = 0; sec <= (countLayer.DtEnd - countLayer.DtBegin).TotalSeconds - 1; sec++) { var middle = new Graphics(); var ct = countLayer.DtBegin.AddSeconds(sec); var countl = Seconds.GetValue(countLayer, ct).OpcRec; var general = Seconds.GetValue(generalState, ct).OpcRec; var kfb = Seconds.GetValue(koefficB, ct).OpcRec; var kfk = Seconds.GetValue(koefficK, ct).OpcRec; var lr1 = Seconds.GetValue(layer1, ct).OpcRec; var lr2 = Seconds.GetValue(layer2, ct).OpcRec; var lr3 = Seconds.GetValue(layer3, ct).OpcRec; var int1 = Seconds.GetValue(n1, ct).OpcRec; var int2 = Seconds.GetValue(n2, ct).OpcRec; var dse = Seconds.GetValue(distance, ct).OpcRec; middle.CountLayer = Convert.ToByte(countl.Value); middle.GeneralState = Convert.ToByte(general.Value); middle.KoefficB = Convert.ToByte(kfb.Value); middle.KoefficK = Convert.ToByte(kfk.Value); middle.Layer1 = Convert.ToSingle(lr1.Value); middle.Layer2 = Convert.ToSingle(lr2.Value); middle.Layer3 = Convert.ToSingle(lr3.Value); middle.IntensityN1 = Convert.ToDouble(int1.Value); middle.IntensityN2 = Convert.ToDouble(int2.Value); middle.Distance = Convert.ToSingle(dse.Value); //var alarms = new Graphics(); //var ct1 = countLayer.DtBegin.AddSeconds(sec); //var dse = Seconds.GetValue(distance, ct1).OpcRec; //alarms.CountLayer = Convert.ToByte(middle.CountLayer/schet); //alarms.GeneralState = Convert.ToByte(middle.GeneralState); //alarms.KoefficB = Convert.ToByte(middle.KoefficB); //alarms.KoefficK = Convert.ToByte(middle.KoefficK); //alarms.Layer1 = Convert.ToSingle(middle.Layer1); //alarms.Layer2 = Convert.ToSingle(middle.Layer2); //alarms.Layer3 = Convert.ToSingle(middle.Layer3 ); //alarms.IntensityN1 = Convert.ToDouble(middle.IntensityN1); //alarms.IntensityN2 = Convert.ToDouble(middle.IntensityN2); //alarms.Distance = Convert.ToSingle(dse.Value); Messur.Add(middle); } }
//Конструктор public ReadAllSelect(string beginDate, string endDate) { var tagsList = new Tags(); Messur = new List <DataRoad>();; var hdas = Connect.ServerHdaConnect(); //var listTag = tagsList.GetMassurm().Select(tags => Convert.ToString(tags.Value)).ToList(); var listTag = new List <string>(); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "MeasuringNum": listTag.Add(tag.Value); break; case "NameRoad": listTag.Add(tag.Value); break; } } Signal nummess = null; Signal name = null; var di = new SignalDict(hdas, listTag, null, beginDate, endDate); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "MeasuringNum": nummess = di.Dictionary[tag.Value]; break; case "NameRoad": name = di.Dictionary[tag.Value]; break; } } for (var sec = 0; sec <= (nummess.DtEnd - nummess.DtBegin).TotalSeconds - 1; sec += 25) { var nm = nummess.DtBegin.AddSeconds(sec); var nume = Seconds.GetValue(nummess, nm).OpcRec; var nam = Seconds.GetValue(name, nm).OpcRec; var alarms = new DataRoad { NumMess = Convert.ToUInt16(nume.Value), RoadName = Convert.ToString(nam.Value) }; if (nume.Value != null && nume.Value.ToString() != string.Empty && nam.Value != null && nam.Value.ToString() != string.Empty) { var flag = true; foreach (var way in Messur) { if (way.NumMess == alarms.NumMess && way.RoadName == alarms.RoadName) { flag = false; } } if (flag) { Messur.Add(alarms); } } } }
public ReadAllGraffics(string beginDate, string endDate) { var tagsList = new Tags(); Messur = new List <Graphics>(); var hdas = Connect.ServerHdaConnect(); var listTag = new List <string>(); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "CountLayers": listTag.Add(tag.Value); break; case "Distance": listTag.Add(tag.Value); break; case "OverallAssessment": listTag.Add(tag.Value); break; case "Layer1": listTag.Add(tag.Value); break; case "Layer2": listTag.Add(tag.Value); break; case "Layer3": listTag.Add(tag.Value); break; case "Sensor1": listTag.Add(tag.Value); break; case "Sensor2": listTag.Add(tag.Value); break; case "Rut": listTag.Add(tag.Value); break; case "Band": listTag.Add(tag.Value); break; case "IRI": listTag.Add(tag.Value); break; case "Latitude": listTag.Add(tag.Value); break; case "Longitude": listTag.Add(tag.Value); break; } } Signal distance = null; Signal countLayer = null; Signal generalState = null; Signal layer1 = null; Signal layer2 = null; Signal layer3 = null; Signal n1 = null; Signal n2 = null; Signal rut = null; Signal band = null; Signal iri = null; Signal latitude = null; Signal longitude = null; var di = new SignalDict(hdas, listTag, null, beginDate, endDate); foreach (var tag in tagsList.GetMassurm()) { switch (tag.Name) { case "CountLayers": countLayer = di.Dictionary[tag.Value]; break; case "Distance": distance = di.Dictionary[tag.Value]; break; case "OverallAssessment": generalState = di.Dictionary[tag.Value]; break; case "Layer1": layer1 = di.Dictionary[tag.Value]; break; case "Layer2": layer2 = di.Dictionary[tag.Value]; break; case "Layer3": layer3 = di.Dictionary[tag.Value]; break; case "Sensor1": n1 = di.Dictionary[tag.Value]; break; case "Sensor2": n2 = di.Dictionary[tag.Value]; break; case "Rut": rut = di.Dictionary[tag.Value]; break; case "Band": band = di.Dictionary[tag.Value]; break; case "IRI": iri = di.Dictionary[tag.Value]; break; case "Latitude": latitude = di.Dictionary[tag.Value]; break; case "Longitude": longitude = di.Dictionary[tag.Value]; break; } } for (var sec = 0; sec <= (countLayer.DtEnd - countLayer.DtBegin).TotalSeconds - 1; sec++) { var middle = new Graphics(); var ct = countLayer.DtBegin.AddSeconds(sec); var countl = Seconds.GetValue(countLayer, ct).OpcRec; var general = Seconds.GetValue(generalState, ct).OpcRec; var lr1 = Seconds.GetValue(layer1, ct).OpcRec; var lr2 = Seconds.GetValue(layer2, ct).OpcRec; var lr3 = Seconds.GetValue(layer3, ct).OpcRec; var int1 = Seconds.GetValue(n1, ct).OpcRec; var int2 = Seconds.GetValue(n2, ct).OpcRec; var dse = Seconds.GetValue(distance, ct).OpcRec; var rt = Seconds.GetValue(rut, ct).OpcRec; var bd = Seconds.GetValue(band, ct).OpcRec; var ir = Seconds.GetValue(iri, ct).OpcRec; var lade = Seconds.GetValue(latitude, ct).OpcRec; var lode = Seconds.GetValue(longitude, ct).OpcRec; middle.CountLayer = Convert.ToByte(countl.Value); middle.GeneralState = Convert.ToBoolean(general.Value); middle.Layer1 = Convert.ToSingle(lr1.Value); middle.Layer2 = Convert.ToSingle(lr2.Value); middle.Layer3 = Convert.ToSingle(lr3.Value); middle.IntensityN1 = Convert.ToDouble(int1.Value); middle.IntensityN2 = Convert.ToDouble(int2.Value); middle.Distance = Convert.ToSingle(dse.Value); middle.Rut = Convert.ToByte(rt.Value); middle.Band = Convert.ToUInt16(bd.Value); middle.IRI = Convert.ToDouble(ir.Value); middle.Latitude = Convert.ToSingle(lade.Value); middle.Longitude = Convert.ToSingle(lode.Value); Messur.Add(middle); } }