Esempio n. 1
0
        public override void UpdateServer(string path, IedServer iedServer, IedModel iedModel)
        {
            try
            {
                var vendorPath = (DataAttribute)iedModel.GetModelNodeByShortObjectReference(path + @".vendor");
                var vendorVal  = vendor;
                iedServer.UpdateVisibleStringAttributeValue(vendorPath, vendorVal);

                var swRevPath = (DataAttribute)iedModel.GetModelNodeByShortObjectReference(path + @".swRev");
                var swRevVal  = swRev;
                iedServer.UpdateVisibleStringAttributeValue(swRevPath, swRevVal);

                var configRevPath = (DataAttribute)iedModel.GetModelNodeByShortObjectReference(path + @".configRev");
                var configRevVal  = configRev;
                iedServer.UpdateVisibleStringAttributeValue(configRevPath, configRevVal);

                var dPath = (DataAttribute)iedModel.GetModelNodeByShortObjectReference(path + @".d");
                var dVal  = d;
                iedServer.UpdateVisibleStringAttributeValue(dPath, dVal);
            }
            catch
            {
                // ignored
            }
        }
Esempio n. 2
0
 internal void SetStringValue(string name, String value, IedModel iedModel, IedServer iedServer)
 {
     if (!string.IsNullOrEmpty(value))
     {
         var namePath = (DataAttribute)iedModel.GetModelNodeByShortObjectReference(name);
         var val      = value;
         iedServer.UpdateVisibleStringAttributeValue(namePath, val);
     }
 }
Esempio n. 3
0
        public override void InitServer(string path, IedServer iedServer, IedModel iedModel)
        {
            UpdateServer(path, iedServer, iedModel);

            var dPath = (DataAttribute)iedModel.GetModelNodeByShortObjectReference(path + @".d");
            var dVal  = d;

            iedServer.UpdateVisibleStringAttributeValue(dPath, dVal);
        }
Esempio n. 4
0
        public void ModifyDpsValue(string ObjRef, string value)
        {
            DataObject DataObj = (DataObject)iedModel.GetModelNodeByShortObjectReference(ObjRef);

            DataAttribute DataObj_ST = (DataAttribute)DataObj.GetChild("stVal");
            DataAttribute DataObj_T  = (DataAttribute)DataObj.GetChild("t");

            iedServer.UpdateVisibleStringAttributeValue(DataObj_ST, value.Substring(0, 2));
            iedServer.UpdateTimestampAttributeValue(DataObj_T, new Timestamp(DateTime.Now));
        }
Esempio n. 5
0
        public override void UpdateServer(string path, IedServer iedServer, IedModel iedModel)
        {
            try
            {
                var vendorPath = (DataAttribute)iedModel.GetModelNodeByShortObjectReference(path + @".vendor");
                var vendorVal  = vendor;
                iedServer.UpdateVisibleStringAttributeValue(vendorPath, vendorVal);

                var serNumPath = (DataAttribute)iedModel.GetModelNodeByShortObjectReference(path + @".serNum");
                var serNumVal  = serNum;
                iedServer.UpdateVisibleStringAttributeValue(serNumPath, serNumVal);

                var modelPath = (DataAttribute)iedModel.GetModelNodeByShortObjectReference(path + @".model");
                var modelVal  = model;
                iedServer.UpdateVisibleStringAttributeValue(modelPath, modelVal);

                var locationPath = (DataAttribute)iedModel.GetModelNodeByShortObjectReference(path + @".location");
                var locationVal  = location;
                iedServer.UpdateVisibleStringAttributeValue(locationPath, locationVal);

                var hwRevPath = (DataAttribute)iedModel.GetModelNodeByShortObjectReference(path + @".hwRev");
                var hwRevVal  = hwRev;
                iedServer.UpdateVisibleStringAttributeValue(hwRevPath, hwRevVal);

                var swRevPath = (DataAttribute)iedModel.GetModelNodeByShortObjectReference(path + @".swRev");
                var swRevVal  = vendor;
                iedServer.UpdateVisibleStringAttributeValue(swRevPath, swRevVal);
            }
            catch
            {
                // ignored
            }
        }
Esempio n. 6
0
        private static void UpdateString(string path, string value, IedServer iedServer, IedModel iedModel)
        {
            iedServer.LockDataModel();

            try
            {
                string str = Convert.ToString(value);
                iedServer.UpdateVisibleStringAttributeValue((DataAttribute)iedModel.GetModelNodeByShortObjectReference(path), str);
            }
            catch
            {
                // ignored
            }

            iedServer.UnlockDataModel();
        }
Esempio n. 7
0
            public void UpdateValue(IedServer server, object DataValue)
            {
                if (DataValue == null)
                {
                    return;
                }
                if (server == null)
                {
                    return;
                }
                if (mmsValue == null)
                {
                    mmsValueInit();
                }
                switch (mmsType)
                {
                /** array type (multiple elements of the same type) */
                case MmsType.MMS_ARRAY:
                    // not supported
                    break;

                /** structure type (multiple elements of different types) */
                case MmsType.MMS_STRUCTURE:
                    // not supported
                    break;

                /** boolean */
                case MmsType.MMS_BOOLEAN:
                    server.UpdateBooleanAttributeValue(this, Convert.ToBoolean(DataValue));
                    break;

                /** bit string */
                case MmsType.MMS_BIT_STRING:
                    if (DataValue is uint)
                    {
                        server.UpdateBitStringAttributeValue(this, Convert.ToUInt32(DataValue));
                    }
                    break;

                case MmsType.MMS_INTEGER:
                    if (daType == DataAttributeType.INT8 ||
                        daType == DataAttributeType.INT16 ||
                        daType == DataAttributeType.INT32)
                    {
                        server.UpdateInt32AttributeValue(this, Convert.ToInt32(DataValue));
                    }
                    else if (daType == DataAttributeType.INT64)
                    {
                        server.UpdateInt64AttributeValue(this, Convert.ToInt64(DataValue));
                    }
                    else if (daType == DataAttributeType.ENUMERATED)
                    {
                        server.UpdateInt32AttributeValue(this, Convert.ToInt32(DataValue));
                    }
                    break;

                /** unsigned integer */
                case MmsType.MMS_UNSIGNED:
                    if (daType == DataAttributeType.INT8U ||
                        daType == DataAttributeType.INT16U ||
                        daType == DataAttributeType.INT32U)
                    {
                        server.UpdateUnsignedAttributeValue(this, Convert.ToUInt32(DataValue));
                    }
                    break;

                /** floating point value (32 or 64 bit) */
                case MmsType.MMS_FLOAT:
                    if (daType == DataAttributeType.FLOAT32)
                    {
                        server.UpdateFloatAttributeValue(this, (float)DataValue);
                    }
                    else if (daType == DataAttributeType.FLOAT64)
                    {
                        // !!! Attention does not generate reports !!!
                        mmsValue.SetDouble((double)DataValue);
                    }
                    break;

                /** octet string */
                case MmsType.MMS_OCTET_STRING:
                    // !!! Attention does not generate reports !!!
                    mmsValue.setOctetString((byte[])DataValue);
                    break;

                /** visible string - ANSI string */
                case MmsType.MMS_VISIBLE_STRING:
                    server.UpdateVisibleStringAttributeValue(this, (string)DataValue);
                    break;

                /** Generalized time */
                case MmsType.MMS_GENERALIZED_TIME:
                    // not supported
                    break;

                case MmsType.MMS_BINARY_TIME:
                    // !!! Attention does not generate reports !!!
                    mmsValue.SetBinaryTime((ulong)DataValue);
                    break;

                /** Binary coded decimal (BCD) - not used */
                case MmsType.MMS_BCD:
                    // Not supported
                    break;

                /** object ID - not used */
                case MmsType.MMS_OBJ_ID:
                    // Not supported
                    break;

                /** Unicode string */
                case MmsType.MMS_STRING:
                    // Not supported
                    //mmsValue.SetMmsString((string)DataValue);
                    break;

                /** UTC time */
                case MmsType.MMS_UTC_TIME:
                    if (DataValue is ulong)
                    {
                        server.UpdateUTCTimeAttributeValue(this, Convert.ToUInt64(DataValue));
                    }
                    else if (DataValue is DateTime)
                    {
                        server.UpdateUTCTimeAttributeValue(this, Util.ConvertDateTime((DateTime)DataValue));
                    }
                    //mmsValue.SetUtcTimeMs((ulong)DataValue);
                    break;

                /** will be returned in case of an error (contains error code) */
                case MmsType.MMS_DATA_ACCESS_ERROR:
                    // Not supported
                    break;
                }
            }