Add command queuing

This will allow multiple threads to interrogate the hardware