Exemplo n.º 1
0
        /// <summary>
        /// Add properties from VC component to component OPCUA node
        /// </summary>
        private void AddPropertyNodes(ComponentState uaComponentNode, VcComponent vcComponent)
        {
            foreach (IProperty vcProperty in vcComponent.component.Properties)
            {
                try
                {
                    // Add signal node
                    BaseDataVariableState uaPropertyNode = CreateVariableNode(uaComponentNode.Properties, vcProperty.Name, VcProperty2OpcuaType[vcProperty.PropertyType]);
                    uaComponentNode.Properties.AddChild(uaPropertyNode);

                    // Store names in UaBrowseName2VcComponentName
                    UaBrowseName2VcComponentName.Add(uaPropertyNode.BrowseName.Name, vcComponent.component.Name);

                    uaPropertyNode.Value = vcProperty.Value;

                    // Subscribe to property changed events
                    vcProperty.PropertyChanged  += vc_PropertyChanged;
                    uaPropertyNode.StateChanged += ua_PropertyChanged;
                }
                catch (Exception ex)
                {
                    logger.Warn("Error adding property", ex);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Add signals from VC component to component OPCUA node
        /// </summary>
        private void AddSignalNodes(ComponentState uaComponentNode, VcComponent vcComponent)
        {
            foreach (ISignal vcSignal in vcComponent.GetSignals())
            {
                // Add signal node
                BaseDataVariableState uaSignalNode = CreateVariableNode(uaComponentNode.Signals, vcSignal.Name, VcSignal2OpcuaType[vcSignal.Type]);
                uaComponentNode.Signals.AddChild(uaSignalNode);

                // Store names in UaBrowseName2VcComponentName
                UaBrowseName2VcComponentName.Add(uaSignalNode.BrowseName.Name, vcComponent.component.Name);

                // Subscribe to signal triggered events
                vcSignal.SignalTrigger    += vc_SignalTriggered;
                uaSignalNode.StateChanged += ua_SignalTriggered;
            }
        }