Ejemplo n.º 1
0
        public bool VerifyResponse(IDebugResponse response, DebugRequest request)
        {
            // Type of echoed request must match
            if (response.RequestEcho.GetType() != request.GetType())
            {
                return(false);
            }

            // TODO: Compare contents of both request messages
            return(true);
        }
Ejemplo n.º 2
0
        internal T SendAndReceive <T>(DebugRequest request, int timeout = 1000) where T : class, IDebugResponse
        {
            signal.Reset();
            port.SendRequest(request);
            if (!signal.WaitOne(timeout))
            {
                Logger.Current.Warning("Response not received in time.");
                return(null);
            }

            // Verify that request is echoed correctly
            // TODO: Implement equality operator for each request type
            //			if (lastResponse.Echo != request) return null;
            IDebugResponse response = responses.Dequeue();

            return(response as T);
        }
Ejemplo n.º 3
0
        internal bool SendAndWait(DebugRequest request, int timeout = 1000)
        {
            signal.Reset();
            port.SendRequest(request);
            if (!signal.WaitOne(timeout))
            {
                Logger.Current.Warning("Response not received in time.");
                return(false);
            }

            // Check whether right response was received
            while (responses.Count > 0)
            {
                IDebugResponse response = responses.Dequeue();
                if (VerifyResponse(response, request))
                {
                    return(true);
                }
            }

            return(false);
        }
Ejemplo n.º 4
0
        private SerialPort serialPort;         //"COM6", 62500, Parity.Space,

        public void SendRequest(DebugRequest request)
        {
            byte[] buffer = request.ToByteArray();
            serialPort.Write(buffer, 0, buffer.Length);
        }