So Far so good, this does indeed read my data from the Serial interface and when I use the Monitor I get this.

FFFFFFF046848FFFFFF8054

Perfect, however, all of the above data is serial injected onto the port at location incomingByte[0] (if you get what I mean).

So, if I did not use "Serial.println" I would get 1 long stream of data on the monitor, not so good.

What I want to be able to do is read the data in as packet like so

FFFFFFF0 4 68 48 FFFFFF80 54

The problem that I have is that the data stream could be any size from 5 to 24 bytes long, so making a statement to read only the required amount is proving difficult.

Luckily the 2nd byte is in fact the packet length, but reading this in as a sequence can sometimes get blank entries (FFFFFFFF) in between the valid packets, so tying down the 2nd byte is not proving reliable.