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); } }