send method
Send the command and return a future that completes with the result
Implementation
Future<T> send(CommandHandler handler) async {
if (_responseCompleter != null) throw 'already called send';
_responseCompleter = Completer<List<int>>();
var result = _responseCompleter!.future.then(processResponse);
await handler.send(this);
return result;
}