Exemplo n.º 1
0
        private void UpdateMemoryBlock()
        {
            //PortMemory
            for (int i = 0; i < registeredDevices.Count; i++)
            {
                PortMemoryBlock pmb = ActiveMemoryBlock.GetPortMemory(i + 1);
                if (pmb.DirtyTypes[(int)PortMemoryBlock.DirtyTypeEnum.AnalogIn])
                {
                    MemoryBlock.PortMemoryUpdateEvent.OnInDataAnalogUpdated.Invoke(i + 1, pmb.AnalogIn);
                    pmb.DirtyTypes[(int)PortMemoryBlock.DirtyTypeEnum.AnalogIn] = false;
                }

                if (pmb.DirtyTypes[(int)PortMemoryBlock.DirtyTypeEnum.AnalogOut])
                {
                    MemoryBlock.PortMemoryUpdateEvent.OnOutDataAnalogUpdated.Invoke(i + 1, pmb.AnalogOut);
                    pmb.DirtyTypes[(int)PortMemoryBlock.DirtyTypeEnum.AnalogOut] = false;
                }

                if (pmb.DirtyTypes[(int)PortMemoryBlock.DirtyTypeEnum.DigitalIn])
                {
                    MemoryBlock.PortMemoryUpdateEvent.OnInDataDigitalUpdated.Invoke(i + 1, pmb.DigitalIn);
                    pmb.DirtyTypes[(int)PortMemoryBlock.DirtyTypeEnum.DigitalIn] = false;
                }

                if (pmb.DirtyTypes[(int)PortMemoryBlock.DirtyTypeEnum.DigitalOut])
                {
                    MemoryBlock.PortMemoryUpdateEvent.OnOutDataDigitalUpdated.Invoke(i + 1, pmb.DigitalOut);
                    pmb.DirtyTypes[(int)PortMemoryBlock.DirtyTypeEnum.DigitalOut] = false;
                }
            }
        }
        public void Start(PortMemoryBlock allocatedMemory)
        {
            Console.WriteLine("_pLog_ {0} [{1}@{2}] {3}", DateTime.UtcNow.Ticks, this.GetType(),
                              MethodBase.GetCurrentMethod().ToString(), string.Format("{0}", "Starting"));

            // Store allocated memory
            allocatedPortMemory = allocatedMemory;
        }
        public void RegisterPortMemory(int portID)
        {
            PortMemoryBlock pmb = GetPortMemory(portID);

            if (pmb == null)
            {
                pmb        = new PortMemoryBlock();
                pmb.PortID = portID;
                allocatedPortMemoryBlocks.Add(pmb);
            }
        }