Exemplo n.º 1
0
        public static object GetParameterValue(OpcValue opcValue, ApiOpcParameter parameter)
        {
            if (opcValue != null)
            {
                try
                {
                    var value = opcValue.ToString();
                    switch (parameter.Type)
                    {
                    case TagTypes.Decimal:
                        return(Math.Round(Convert.ToDecimal(value), parameter.CharactersAmount));

                    case TagTypes.Int16:
                        return(Convert.ToInt16(value));

                    case TagTypes.Int32:
                        return(Convert.ToInt32(value));

                    case TagTypes.Long:
                        return(Convert.ToInt64(value));

                    case TagTypes.Float:
                        return(Convert.ToSingle(Math.Round(Convert.ToSingle(value), parameter.CharactersAmount)));

                    default:
                        return(opcValue.ToString());
                    }
                }
                catch (Exception ex)
                {
                    Service.GetInstance().GetLogger().Error(ex);
                    return(null);
                }
            }

            return(null);
        }
Exemplo n.º 2
0
        public static OpcWriteNode GetOpcWriteNode(string value, ApiOpcParameter parameter)
        {
            value = value.Replace(".", ",");
            switch (parameter.Type)
            {
            case TagTypes.Decimal:
                return(new OpcWriteNode(parameter.Tag.ToNode(), OpcAttribute.Value, Convert.ToDecimal(value)));

            case TagTypes.Int16:
                return(new OpcWriteNode(parameter.Tag.ToNode(), OpcAttribute.Value, Convert.ToInt16(value)));

            case TagTypes.Int32:
                return(new OpcWriteNode(parameter.Tag.ToNode(), OpcAttribute.Value, Convert.ToInt32(value)));

            case TagTypes.Long:
                return(new OpcWriteNode(parameter.Tag.ToNode(), OpcAttribute.Value, Convert.ToInt64(value)));

            case TagTypes.Float:
                return(new OpcWriteNode(parameter.Tag.ToNode(), OpcAttribute.Value, Convert.ToSingle(value)));

            default:
                return(new OpcWriteNode(parameter.Tag.ToNode(), OpcAttribute.Value, value));
            }
        }