Serial buffer or faster processing?

Essentially, ':' is your end of line marker and '=' is your separator between key/value pairs, similar to the lines in an ini or conf file.
So, the high level processing should look like this;

  1. Buffer characters up to the line marker,
  2. Then process the buffer, splitting your key and value on the '='
  3. Then select a function according to the 'key'
  4. Then assign the 'value', by carrying out the operation/s the value corresponds to.
  5. Dispose of any key/value pairs your device does not respond to.
  6. goto 1.

You need to think about how the stream is synchronised between your host and your device.
Does your device request 'discrete' values?
Does the host software send values when states change (delta state)?
Does the host software stream the entire state, frame by frame?