Exemple #1
0
        private void ReceiveData(object sender, SerialDataReceivedEventArgs args)
        {
            int bytesPending = port.BytesToRead;

            byte[] buffer = new byte[bytesPending];
            port.Read(buffer, 0, bytesPending);

            foreach (byte b in buffer)
            {
                Destuffer.Add(b);
            }
        }
Exemple #2
0
        private void HandleIncommingFrame(Destuffer caller, byte[] frame)
        {
            try
            {
                var response = new Packet(frame);

                if (response.Code != 0x00)
                {
                    if (response.IsFunction)
                    {
                        lock (lockObject)
                        {
                            if (current != null)
                            {
                                current.SetResponse(response);
                            }

                            state = CommState.COMPLETED;
                        }
                    }
                    else
                    {
                        try
                        {
                            lock (lockObject)
                            {
                                messages.Enqueue(response);
                            }
                        }
                        catch (Exception e)
                        {
                            Log.Error(e.Message);
                        }
                    }
                }
                else
                {
                    lock (lockObject)
                    {
                        currentException = new UnknownFunctionCallException(String.Format("Error: {0}", response.GetByte(0)));
                        state            = CommState.ERROR;
                    }
                }
            }
            catch {}
        }