Esempio n. 1
0
 public override void Disconnect()
 {
     CasterLogger.Debug($"Port {this.ComponentName} is disconnecting");
     if (paramCollection != null && paramCollection.GetType().IsCOMObject)
     {
         Marshal.FinalReleaseComObject(paramCollection);
     }
     paramCollection = null;
     CasterLogger.Debug($"Port {this.ComponentName} disconnected.");
 }
Esempio n. 2
0
 /// <summary>
 /// connect to information, must be ICapeCollection
 /// </summary>
 public override void Connect(object objectToConnect)
 {
     CasterLogger.Debug($"Port {this.ComponentName} is connecting");
     Disconnect();
     if (objectToConnect is ICapeCollection)
     {
         paramCollection = objectToConnect as ICapeCollection;
     }
     else
     {
         throw new ECapeUnknownException(this, "object connected to information port must be ICapeCollection");
     }
     CasterLogger.Debug($"Port {this.ComponentName} connected.");
 }
Esempio n. 3
0
        override public void Initialize()
        {
            ICapeUtilitiesCOM p_Util = ((ICapeUtilitiesCOM)this.p_Unit);

            p_Util.Initialize();

            ICapeIdentification p_Id = (ICapeIdentification)p_Unit;

            //wrap ports...
            ICapeCollection portColl  = (ICapeCollection)((ICapeUnitCOM)(p_Unit)).ports;
            int             portCount = portColl.Count();

            object[] portConnections = new object[portCount];
            for (int i = 0; i < portCount; i++)
            {
                ICapeUnitPortCOM port = (ICapeUnitPortCOM)portColl.Item(i + 1);
                this.Ports.Add(new UnitPortWrapper(port));
            }

            //wrap parameters...
            ICapeCollection paramColl  = (ICapeCollection)((ICapeUtilitiesCOM)(p_Unit)).parameters;
            int             paramCount = paramColl.Count();

            for (int i = 0; i < paramCount; i++)
            {
                ICapeParameter param     = (ICapeParameter)paramColl.Item(i + 1);
                CapeParamType  paramType = ((ICapeParameterSpecCOM)param.Specification).Type;
                if (((ICapeParameterSpecCOM)param.Specification).Type == CapeParamType.CAPE_REAL)
                {
                    this.Parameters.Add(new RealParameterWrapper(param));
                }
                if (((ICapeParameterSpecCOM)param.Specification).Type == CapeParamType.CAPE_INT)
                {
                    this.Parameters.Add(new IntegerParameterWrapper(param));
                }
                if (((ICapeParameterSpecCOM)param.Specification).Type == CapeParamType.CAPE_OPTION)
                {
                    this.Parameters.Add(new OptionParameterWrapper(param));
                }
                if (((ICapeParameterSpecCOM)param.Specification).Type == CapeParamType.CAPE_BOOLEAN)
                {
                    this.Parameters.Add(new BooleanParameterWrapper(param));
                }
                if (((ICapeParameterSpecCOM)param.Specification).Type == CapeParamType.CAPE_ARRAY)
                {
                    this.Parameters.Add(new ArrayParameterWrapper(param));
                }
            }
        }