Пример #1
0
        public override void AfterSave()
        {
            base.AfterSave();

            if (string.IsNullOrEmpty(EntityFolderID))
            {
                throw new Exception("EntityFolderID not found");
            }

            Folder folder = new ORM <Folder>().Fetch(EntityFolderID);
            OPCServerFolderBehaviorData ext = folder?.GetExtensionData <OPCServerFolderBehaviorData>();

            if (ext != null)
            {
                if (Disabled)
                {
                    OPCEngine.RemoveEventGroup(ext.Url, ext.AgentId, Id);
                }
                else
                {
                    OpcEventGroup eventGroup = new OpcEventGroup
                    {
                        Paths      = EventValues?.Select(y => y.PathToValue).ToArray() ?? new string[0],
                        EventId    = Id,
                        Deadband   = Deadband,
                        UpdateRate = UpdateRate
                    };
                    OPCEngine.AddOrUpdateEventGroup(ext.Url, ext.AgentId, eventGroup);
                }
            }
        }
Пример #2
0
        public static void AddOrUpdateEventGroup(string url, string agentId, OpcEventGroup eventGroup)
        {
            AgentInstructions instr = new AgentInstructions()
            {
                Id                          = Guid.NewGuid().ToString(),
                EntityName                  = "Update Event Group on " + url,
                MustBeCompletedBy           = DateUtilities.Now(),
                AgentInstructionHanlderType = "Decisions.OPC.Agent.AddOrUpdateEventGroupInstructionHandler",
                Data                        = new[]
                {
                    new DataPair("opcServerUrl", url),
                    new DataPair("eventGroup", eventGroup),
                }
            };

            AgentService.Instance.InstructAgent(new SystemUserContext(), agentId, instr);
        }