public bool WaitForEvent(int TimeOut, REAjetSerialEventEnum REAjetEvent)
        {
            bool Result = false;
            AutoResetEvent AsyncWaitHandle = null;

            LogSession.EnterMethod(this, "WaitForEvent");
            try
            {
                switch (REAjetEvent)
                {
                    case REAjetSerialEventEnum.AcknowledgmentReceived:
                        AsyncWaitHandle = this.m_AsyncAckWaitHandle;
                        break;
                    case REAjetSerialEventEnum.TelegramReceived:
                        AsyncWaitHandle = this.m_AsyncTelegramWaitHandle;
                        break;
                }

                if (AsyncWaitHandle != null)
                {
                    LogSession.LogMessage(" Waiting {0} [ms] for event {1}", TimeOut.ToString(), REAjetEvent.ToString());
                    Result = AsyncWaitHandle.WaitOne(TimeOut, false);
                }
                else
                {
                    Result = false;
                }

                //if (!Result && (AsyncWaitHandle != null))
                //    AsyncWaitHandle.Set();
            }
            catch (Exception ex)
            {
                LogSession.LogException(ex);
                throw ex;
            }
            finally
            {
                LogSession.LeaveMethod(this, "WaitForEvent");
            }
            return Result;
        }
        public void SetFlagEvent(REAjetSerialEventEnum REAjetEvent)
        {
            try
            {
                LogSession.EnterMethod(this, "SetFlagEvent");
                /*--------- Your code goes here-------*/
                AutoResetEvent AsyncWaitHandle = null;
                switch (REAjetEvent)
                {
                    case REAjetSerialEventEnum.AcknowledgmentReceived:
                        AsyncWaitHandle = this.m_AsyncAckWaitHandle;
                        break;
                    case REAjetSerialEventEnum.TelegramReceived:
                        AsyncWaitHandle = this.m_AsyncTelegramWaitHandle;
                        break;
                }

                LogSession.LogMessage(" Event {0} set", REAjetEvent.ToString());
                AsyncWaitHandle.Set();
                /*------------------------------------*/
            }
            catch (Exception ex)
            {
                LogSession.LogException(ex);
                throw ex;
            }
            finally
            {
                LogSession.LeaveMethod(this, "SetFlagEvent");
            }
        }