private bool hasFullPacket()
        {
            bool result    = false;
            int  byteCount = port.BytesToRead;

            byte[] bytesRead;
            if (readPacket.Count > 0 && byteCount > 0)            //if the readPacket already has values and the input buffer has bytes to read
            {
                if (byteCount > readPacket.ElementAt(1))
                {
                    bytesRead = new byte[readPacket.ElementAt(1) + 1];

                    port.Read(bytesRead, 0, readPacket.ElementAt(1) + 1);
                    readPacket.AddRange(bytesRead);
                    result = true;
                }
            }
            else if (byteCount > 2)            //if the input buffer has bytes to read and you get here then we start filling the readPacket
            {
                bytesRead = new byte[2];
                port.Read(bytesRead, 0, 2);
                if (bytesRead[0] == 0xD5)                //checks for start bit from printer
                {
                    readPacket.AddRange(bytesRead);
                    if (readPacket.ElementAt(1) < byteCount)                    //checks packet size against how full the buffer is
                    {
                        bytesRead = new byte[readPacket.ElementAt(1) + 1];
                        port.Read(bytesRead, 0, readPacket.ElementAt(1) + 1);
                        readPacket.AddRange(bytesRead);
                        result = true;
                    }
                }
                else
                {
                    if (bytesRead[1] == 0xD5)                    //checks for start bit in second spot in case we somehow got a stray bit in here somehow
                    {
                        readPacket.Add(bytesRead[1]);            //Add the start bit and retrieve packet length from the buffer (may need to check buffer size before reading)

                        bytesRead = new byte[1];
                        port.Read(bytesRead, 0, 1);
                        readPacket.Add(bytesRead[0]);
                        if (readPacket.ElementAt(1) < byteCount)                        //checks packet size against how full the buffer is
                        {
                            bytesRead = new byte[readPacket.ElementAt(1) + 1];
                            port.Read(bytesRead, 0, readPacket.ElementAt(1) + 1);
                            readPacket.AddRange(bytesRead);
                            result = true;
                        }
                    }
                }
            }


            return(result);
        }