public OMSSCADACommon.Responses.Response ReadSingleDigital(string id) { Digital digital = null; OMSSCADACommon.Responses.Response response = new OMSSCADACommon.Responses.Response(); // getting PV from db ProcessVariable pv; if (dbContext.GetProcessVariableByName(id, out pv)) { digital = (Digital)pv; } // does this ID exist in the database if (digital == null) { response.ResultMessage = ResultMessage.INVALID_ID; return(response); } DigitalVariable digitalVariable = new DigitalVariable() { Id = id, State = digital.State }; response.Variables.Add(digitalVariable); return(response); }
/// <summary> /// 添加离散变量 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DigToolStripMenuItemClick(object sender, EventArgs e) { var digitalVariable = new DigitalVariable( _iVariableDesignRepository.FindGroupByPath(GetVariableGroupPath(_currentNode.FullPath))); _iVariableDesignRepository.AddVariable(digitalVariable); AddVarToListview(digitalVariable, dataGridView_Avaiable); }
public List <ResourceDescription> MappResult(Response response) { List <ResourceDescription> retVal = new List <ResourceDescription>(); ResourceDescription rd; if (response != null) { foreach (ResponseVariable rv in response.Variables) { rd = new ResourceDescription(); rd.AddProperty(new Property(ModelCode.IDOBJ_MRID, rv.Id)); switch (rv.VariableType) { case ResponseVarType.Analog: AnalogVariable av = rv as AnalogVariable; UnitSymbol unitSymbolValue = UnitSymbol.none; try { unitSymbolValue = (UnitSymbol)Enum.Parse(typeof(UnitSymbol), av.UnitSymbol, true); } catch (Exception e) { //throw; } Console.WriteLine("Variable = {0}, Value = {1}, Unit={2}", av.Id, av.Value, av.UnitSymbol.ToString()); rd.AddProperty(new Property(ModelCode.ANALOG_NORMVAL, av.Value)); break; case ResponseVarType.Digital: DigitalVariable dv = rv as DigitalVariable; Console.WriteLine("Variable = {0}, STATE = {1}", dv.Id, dv.State); if (dv.State.ToString() == "CLOSED") { rd.AddProperty(new Property(ModelCode.DISCRETE_NORMVAL, 0)); } else { rd.AddProperty(new Property(ModelCode.DISCRETE_NORMVAL, 1)); } break; case ResponseVarType.Counter: break; } retVal.Add(rd); } } return(retVal); }
public List <ResourceDescription> MappResult(Response response) { List <ResourceDescription> retVal = new List <ResourceDescription>(); List <long> AnalogList = model.GetExtentValues(ModelCode.ANALOG); List <long> DiscreteList = model.GetExtentValues(ModelCode.DISCRETE); ResourceDescription rd; foreach (ResponseVariable rv in response.Variables) { //izmijena zato sto vraca mrid a ne gid rd = new ResourceDescription(); DigitalVariable dv = rv as DigitalVariable; rd = new ResourceDescription(); rd.AddProperty(new Property(ModelCode.IDOBJ_MRID, dv.Id)); if (dv.State.ToString() == "CLOSED") { rd.AddProperty(new Property(ModelCode.DISCRETE_NORMVAL, 0)); } else { rd.AddProperty(new Property(ModelCode.DISCRETE_NORMVAL, 1)); } retVal.Add(rd); //long measID = Convert.ToInt64(rv.Id); //string variableType = rv.GetType().ToString(); //if (variableType == "AnalogVariable" && AnalogList.Contains(measID)) //{ // // model.GetValues(measID) ako bude trebalo jos nesto da se ucita da se nasminka // AnalogVariable av = rv as AnalogVariable; // rd = new ResourceDescription(); // rd.Id = measID; // rd.AddProperty(new Property(ModelCode.IDOBJ_MRID, measID)); // rd.AddProperty(new Property(ModelCode.ANALOG_NORMVAL, av.Value)); // //dodati vrijednost // retVal.Add(rd); //} //else if (variableType == "DigitalVariable" && DiscreteList.Contains(measID)) //{ // DigitalVariable dv = rv as DigitalVariable; // rd = new ResourceDescription(); // rd.Id = measID; // rd.AddProperty(new Property(ModelCode.IDOBJ_MRID, measID)); // rd.AddProperty(new Property(ModelCode.DISCRETE_NORMVAL, dv.State.ToString())); // //dodati vrijednost // retVal.Add(rd); //} } //vratiti rezultat korisniku return(retVal); }