Exemple #1
0
        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);
        }
Exemple #2
0
        /// <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);
            }
        }
Exemple #3
0
        /// <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);
        }