Serial buffer or faster processing?

Please post more information on the codes being sent.

Why have ABCD when you use X to select a device?
Does the stream end in an ':' or does that character only separate values?
Are all the codes the same length?