/// <summary> /// Get packet from device. /// </summary> /// <returns></returns> public byte[] GetPacketFromDevice() { try { receiveLock.Enter(); if (receiveQueue.Count == 0) { return(null); } byte[] data = receiveQueue.First.Value; receiveQueue.RemoveFirst(); return(data); } finally { receiveLock.Exit(); } }
/// <summary> /// Adds the specified device. /// </summary> /// <param name="device">The device.</param> public void Add(DeviceX device) { spinLock.Enter(); devices.Add(device); if (device.Parent != null) { device.Parent.Children.Add(device); } spinLock.Exit(); }
/// <summary> /// Sends the packet to device. /// </summary> /// <param name="data">The data.</param> /// <returns></returns> public bool SendPacketToDevice(byte[] data) { try { transmitLock.Enter(); if (transmitQueue.Count >= maxTransmitQueue) { return(false); } transmitQueue.AddLast(data); countTransmitPackets++; return(true); } finally { transmitLock.Exit(); } }
/// <summary> /// /// </summary> /// <param name="device"></param> public void Add(IDevice device) { spinLock.Enter(); devices.AddLast(device); spinLock.Exit(); }