public OMSSCADACommon.Responses.Response ReadSingleAnalog(string id) { Analog analog = null; OMSSCADACommon.Responses.Response response = new OMSSCADACommon.Responses.Response(); ProcessVariable pv; if (dbContext.GetProcessVariableByName(id, out pv)) { analog = (Analog)pv; } // does this ID exist in the database if (analog == null) { response.ResultMessage = ResultMessage.INVALID_ID; return(response); } AnalogVariable analogVariable = new AnalogVariable() { Id = id, Value = analog.AcqValue }; response.Variables.Add(analogVariable); return(response); }
/// <summary> /// 复制变量组 /// </summary> /// <param name="sourse">源</param> /// <param name="destination">目标</param> /// <param name="pasteMode">粘贴模式,0:默认模式,重复则返回,1:如果重复则替换,2:如果重复则两个变量都保留,3:如果重复则放弃</param> private void CopyGroup(VariableGroup sourse, VariableGroup destination, uint pasteMode) { if (sourse == null) { return; } string groupName = sourse.Name; if ((pasteMode == 2) && IsExistName(sourse.Name, destination))//同时保留两个 { groupName = GetDefaultName(destination, sourse.Name); } AddGroup(groupName, destination.AbsolutePath); VariableGroup var = VariableRepository.FindGroupByPath(destination.AbsolutePath == null ? groupName : destination.AbsolutePath + "." + groupName); if (var == null) { throw new ArgumentNullException(Resource1.VariableRepository_CopyGroup_destinationIsNotExist); } foreach (var childVariable in sourse.ChildVariables) { var varVariable = new AnalogVariable(var); ObjectCopier.CopyProperties(varVariable, childVariable); AddVariable(varVariable); } foreach (var variableGroup in sourse.ChildGroups) { CopyGroup(variableGroup, var, pasteMode); } }
/// <summary> /// 添加模拟变量 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AnaToolStripMenuItemClick(object sender, EventArgs e) { var analogVariable = new AnalogVariable( _iVariableDesignRepository.FindGroupByPath(GetVariableGroupPath(_currentNode.FullPath))); _iVariableDesignRepository.AddVariable(analogVariable); AddVarToListview(analogVariable, 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); }