예제 #1
0
        /// <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();
        }
예제 #2
0
        /// <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();
            }
        }
예제 #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="device"></param>
 public void Add(IDevice device)
 {
     spinLock.Enter();
     devices.AddLast(device);
     spinLock.Exit();
 }