added threaded read function in device controller