Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 4
0
        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);
        }