Beispiel #1
0
        private Guid AddElement
        (
            string Marker,
            DebuggerPrimitive.ActionType Queuetype,
            MemoryType Memorytype,
            int Address,
            byte[] Recording_Buffe,
            int Count,
            bool CycleElement,
            int Period,
            ProceedingCompleetedDelegate Callback,
            ProceedingProgressChangedDelegate PartCallback)
        {
            Guid m_ret = Guid.NewGuid();

            Trace.WriteLine("Добавление запроса в очередь :" + m_ret.ToString(), "DebuggerEngine");

            DebuggerPrimitive.QueueElement m_newQuery = new DebuggerPrimitive.QueueElement();

            if (Count > BufferSize)
            {
                //Добавляем часть для чтения частями
                m_newQuery.isReadLongBuffer = true;
                m_newQuery.ReadLongBuffer   = new DebuggerPrimitive.ReadLongData(Count);
                m_newQuery.iAddress         = Address;
                m_newQuery.PartCallBack     = PartCallback;
            }
            else
            {
                m_newQuery.isReadLongBuffer = false;
                m_newQuery.ReadLongBuffer   = null;
            }

            m_newQuery.Marker           = Marker;
            m_newQuery.Period           = Period;
            m_newQuery.ID               = m_ret;
            m_newQuery.Address          = Address;
            m_newQuery.Callback         = Callback;
            m_newQuery.Count            = Count;
            m_newQuery.CycleElement     = CycleElement;
            m_newQuery.Memorytype       = Memorytype;
            m_newQuery.Queuetype        = Queuetype;
            m_newQuery.Recording_Buffer = Recording_Buffe;

            //Блокируем список и добавляем элемент
            lock (_AddElementInQueue)
            {
                _AddElementInQueue.Add(m_newQuery);
            }
            return(m_ret);
        }
Beispiel #2
0
        /// <summary>
        /// Добавление элемента в очередь
        /// </summary>
        /// <param name="Queuetype">Тип запроса (чтение/запись)</param>
        /// <param name="Memorytype">Тип памяти</param>
        /// <param name="Address">Начальный адрес</param>
        /// <param name="Count">Количество байт для чтения</param>
        /// <param name="Period">Период опроса</param>
        /// <param name="CycleElement">Флаг цикличности</param>
        /// <param name="Recording_Buffe">Записываемых буфер</param>
        /// <param name="Callback">Функция обратного вызова</param>
        /// <returns>Уникальный номер в очереди</returns>
        public Guid AddElementInQueue
        (
            DebuggerPrimitive.ActionType Queuetype,
            MemoryType Memorytype,
            int Address,
            byte[] Recording_Buffe,
            int Count,
            bool CycleElement,
            int Period,
            ProceedingCompleetedDelegate Callback
        )
        {
            Guid m_ret = AddElement(null, Queuetype, Memorytype, Address, Recording_Buffe, Count, CycleElement, Period, Callback, null);

            return(m_ret);
        }